Я использую KendoUI (v2015.1.318) с AngularJS (v1.3.14). После каждого нажатия на узел данные будут извлекаться из API. После выбора некоторых элементов и нажатия кнопки «добавить» элементы будут добавлены в отдельный список, расширенные treenodes должны оставаться видимыми, но все отмеченные элементы должны быть отмечены флажками.KendoUI Treeview с AngularJS снять флажки флажки
После того, как я перебрал через источник данных, чтобы снять отмеченные элементы, я снова вызываю SetDataSource. Когда я расширил множество узлов и проверил несколько, пользовательский интерфейс замерзает несколько секунд, пока он обрабатывается.
Мне было интересно, не было ли более эффективного способа выполнить это.
Я сделал пример без API вызова:
$scope.saveTreeFields = function() {
var data = $scope.tree.dataSource._data;
for (var i = 0, j = data.length; i < j; i++) {
checkChildren(data[i]);
}
function checkChildren(data) {
if (data.checked) {
data.checked = false;
}
if (data.items !== undefined) {
for (var i = 0, j = data.items.length; i < j; i++) {
checkChildren(data.items[i]);
}
}
}
$scope.tree.setDataSource(data)
};