我有这个剑道树列表。我正在使用angular js。我想将选中的元素放入地图中。我成功做到了。这是我的剑道树列表:
$scope.getSpecificMenuDetails = function () {
ProfileService.getSpecificMenuDetails().then(function (d) {
$scope.NodeMenu = d;
testNodeMenu=$scope.NodeMenu;
dataSource = new kendo.data.TreeListDataSource({
data:testNodeMenu,
schema: {
model: {
id: "id"
}
},
reorderable: true,
resizable: true,
sortable: true,
filterable: true,
columnMenu: true
});
$scope.treelistOptions =
{
height: 300,
sortable: true,
pageable: true,
dataSource: dataSource,
columns:
[
{field: "screen", expandable: true, title:"Screen"},
{field: "visible",title:"View", template: "<input type='checkbox' ng-model='dataItem.visible' ng-change='checkChildrenVisible(dataItem)' />"},
{field: "writable", title:"Modify", template: "<input type='checkbox' ng-model='dataItem.writable' ng-change='checkChildrenModify(dataItem)' />" }
],
check: function(e) {
console.log("Checking", e.node);
}
};
},
function (errResponse) {
console.error('Error while getting Specific Menu Details');
});
}
这是我的代码,用于从此列表中获取选中的元素:
var maMap = new Map();
$scope.checkChildrenVisible = function(node) {
maMap.set(node,node.screen);
function check(nodes, state) {
for (var i = 0; i < nodes.length; i++) {
nodes[i].set("visible", state);
check(dataSource.childNodes(nodes[i]), state);
maMap.set(nodes[i],nodes[i].screen);
}
console.log("maMap", maMap);
}
check(dataSource.childNodes(node), node.visible);
};
我的问题是,当我想检索未选中的元素然后取消选中时,这意味着我想对包含选中元素列表的地图进行更新。很抱歉这个问题,但是我需要帮助,谢谢您的帮助。