Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 有棱角的使用ng repeat在嵌套指令中删除_Angularjs_Angularjs Directive_Angularjs Ng Repeat - Fatal编程技术网

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

我是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 }}. 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];
});