각도를 사용하여 확인란 변경 이벤트를 구현하려고하지만 확인란을 클릭했을 때 여러 번 이벤트가 실행되는 것을 보려고합니다.각도 - Kendo treeview 확인란 변경 이벤트가 여러 번 실행 됨
나는 plnkr을 만들었습니다. 도와주세요. 이상적으로 그것은 한 번만 해고되어야합니다.
$scope.treeOptions = {
checkboxes: {
checkChildren: true
},
dataBound: function(e) {
$scope.attachChangeEvent(e);
}
};
이벤트 변경 코드 :
$scope.attachChangeEvent = function(e) {
var dataSource = e.sender.dataSource;
// issue : change event is getting called multiple times for every click on checkbox
dataSource.bind("change", function(e) {
var selectedNodes = 0;
var checkedNodes = [];
$scope.checkedNodeIds(dataSource.view(), checkedNodes);
for (var i = 0; i < checkedNodes.length; i++) {
var nd = checkedNodes[i];
if (nd.checked) {
selectedNodes++;
}
}
// check the console - this is called multiple times for one checkbox click
console.log(selectedNodes);
});
};
모든 체크 박스가 업데이트 된 후 하나 개의 이벤트가 발생하도록하기 위해 부착하는 또 다른 이벤트가 있나요? 아니면 모든 '변경'이벤트를 그룹화하고 대신 하나만 실행하는 방법이 있을까요?
안녕 라스 - 응답 해 주셔서 감사합니다. 좀 더 많은 문제가있는 것 같습니다. 새로 고침 페이지는 첨부 이벤트를 세 번 호출하는 것입니다. 그리고 때로는 이벤트가 일부 반복을 수행 한 후 두 번 실행되는 경우도 있습니다. – Abhi
당신이 무엇을 의미하는지 모르겠습니다 - 설명하기 위해 데모를 바꿀 수 있습니까? 아니면 재현 할 단계를 줄 수 있습니까? 부모의 모든 자식을 검사하면 데이터 소스 변경 이벤트가 두 번 트리거됩니다.이 경우 부모는 자동으로 두 번째 이벤트를 트리거하는 "checked"로 설정됩니다. –
OK, 사용자가 의미하는 바를 알고 있다고 생각합니다 .- 트리 뷰 초기화 할 때 데이터 소스를 변경하여 변경 이벤트를 트리거합니다. 내 대답에 또 다른 대안을 추가했습니다 –