我试图通过单击按钮添加子菜单,但是它不起作用。我的数据如下所示:
$scope.menuItems = [
{ name: 'Menu1',
children: [
{ name: 'Sub1' },
{ name: 'Sub2'} ]
},
{ name: 'Menu1',
children: [
{ name: 'Sub1' } ]
}
];
$scope.addSubItem = function() {
$scope.menuItems.children.push({
name: 'Test Sub Item'
});
};
您需要修改子菜单按钮标记,以将引用传递给按钮所在的菜单项:
<ul class="sub-menu">
<li ng-repeat="menuItem in menuItem.children" ng-include="'sub-tree-renderer.html'"></li>
<button class="btn btn-warning" style="margin-top: 10px;" ng-click="addSubItem(menuItem)">Add Sub Menu Item</button>
</ul>
然后在您的addSubItem函数中直接对该项进行操作,如下所示:
$scope.addSubItem = function(item) {
item.children.push({
name: 'Sub' + (item.children.length + 1)
});
};
还要确保每次创建新项时,子数组都被定义为空数组,而不是未定义的数组:
$scope.addItem = function() {
$scope.menuItems.push({
name: 'Test Menu Item',
children: []
});
};
我建议您使用数据值对象来构造新项目,而不要使用手工输入的对象文字,就好像您在许多地方使用它们一样,很容易犯错误并导致错误,这种错误仅在某些地方发生并且耗时找。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句