Angularjs 有棱角的使用ng repeat在嵌套指令中删除
我是AngularJS新手,在使用ng repeat删除嵌套自定义指令中的某些元素时遇到问题 我有这样的嵌套指令结构:Angularjs 有棱角的使用ng repeat在嵌套指令中删除,angularjs,angularjs-directive,angularjs-ng-repeat,Angularjs,Angularjs Directive,Angularjs Ng Repeat,我是AngularJS新手,在使用ng repeat删除嵌套自定义指令中的某些元素时遇到问题 我有这样的嵌套指令结构: <button ng-click="mc.addCat()">Add Category</button> <category ng-repeat="cat in mc.main.categories"> <ul class="first-level"> {{ $index +1 }}. C
<button ng-click="mc.addCat()">Add Category</button>
<category ng-repeat="cat in mc.main.categories">
<ul class="first-level">
{{ $index +1 }}. Category
<br>
<input type="text" ng-model="mc.main.categories[$index].name">
<button ng-click="cc.removeCat($index)">Del Category</button>
<button ng-click="cc.addItem()">Add Item</button>
<item ng-repeat="item in cc.cat.items track by item.id">
<li class="second-level">
{{ $parent.$index +1 }}.{{ $index +1 }}
<input type="text" ng-model="mc.main.categories[$parent.$index].items[item.id].name">
<button ng-click="ic.removeItem(item)">del</button>
</li>
</item>
</ul>
</category>
添加类别
{{$index+1}}。类别
Del类别
添加项
-
{{$parent.$index+1}}.{{$index+1}
德尔
根据需要添加和删除类别,父模型将更新。
但当我在item字段中输入某个内容,然后将其删除时,该项仍保留在父模型中
我想我的问题在嵌套范围内,你能告诉我我做错了什么吗
谢谢 据我从您的代码中了解,您的新
项目正在添加中,您正在输入一些信息,这些信息正在更新您的父模型
<input type="text" ng-model="mc.main.categories[$parent.$index].items[item.id].name">
类别中的以下所有功能似乎都不起作用
vm.cat = {
items: [{
id: 0,
name: ''
}]
};
vm.itemId = 0;
vm.addItem = function() {
vm.itemId = vm.itemId + 1;
var item = {
id: vm.itemId,
name: ''
};
vm.cat.items.push(item);
};
$scope.$on('delItem', function(event, data) {
var items = vm.cat.items;
items.splice(items.indexOf(data), 1);
});
指令中的delete函数应该调用一个方法来更新主模型…我已经编辑了plunker并分叉了edit
`
`
这是plunker链接是的,我将项目添加到类别中,需要更改父模型。如果我在item input中键入了一些内容,它会被更新,但是如果我使用splice方法删除了item,则父模型没有任何更改谢谢您的关注!但如果我添加项目,然后删除任何项目,然后添加新的一个或多个项目,然后尝试删除,则不会从父模型中删除某些项目。这是所有在一个第一类,没有更多的类别添加。
vm.cat = {
items: [{
id: 0,
name: ''
}]
};
vm.itemId = 0;
vm.addItem = function() {
vm.itemId = vm.itemId + 1;
var item = {
id: vm.itemId,
name: ''
};
vm.cat.items.push(item);
};
$scope.$on('delItem', function(event, data) {
var items = vm.cat.items;
items.splice(items.indexOf(data), 1);
});
$scope.$on('updateItems',function(event,index,pindex){
console.log(index);
console.log(pindex);
var sti = ""+index+"";
delete vm.main.categories[pindex].items[sti];
});