AngularJS:索引删除数组项后索引未更新

时间:2014-11-25 16:53:18

标签: javascript arrays angularjs angularjs-ng-repeat array-splice

我正在尝试使用项目的索引从AngularJS的范围数组变量中删除项目。

(如果你在这里停止阅读,认为这是重复的,请跳到脚注链接,我能找到类似但不一样的问题得到回答 - 或者,如果你发现我可能错过了一些东西完全相同的问题如果你愿意分享它的SO链接我会很感激!Thx)

这是我的 example

http://jsbin.com/seyaje/3/edit?html,output 

我看到的问题是,索引不会每次都自动更新 - 因此错误的项目会被删除,或者如果索引是“越界”,则该项目根本不会被删除。

我个人更喜欢在我的场景中传递索引,而且我认为不必重复计算索引的工作相对较少。 (如果索引正确!)

我怎么可能使用 AngularJS 1.25 解决这个问题?您的建设性帮助永远受到赞赏!


这可能是类似的问题:

AngularJS remove item from scope How to remove an Item from scope AngularJS

我想要完成的事情,似乎与以下几点相似:

https://stackoverflow.com/a/23810035http://plnkr.co/edit/51SNVMQjG3dsmpYI5RyY?p=preview

有些类似的未回答的问题(找到对象并按索引删除): remove clicked item angularjs

1 个答案:

答案 0 :(得分:5)

myIndex属性由重复的初始化设置,并且未正确更新。相反,您可以使用$index。当数组更改并删除正确的元素时,这将适当更新。

<tr ng-repeat="i in items">
    <td>{{$index}}</td>
    <td>{{i.Id}}</td>
    <td>{{i.Name}}</td>
    <td>{{i.Type}}</td>
    <td>
        <button data-ng-click="deleteItemByIndex($index)">&times;</button>
    </td>
</tr>