ng-repeat奇怪的行为带回了被删除的元素

时间:2014-02-11 00:53:49

标签: javascript jquery angularjs

将我的应用视为待办事项列表,用户可以添加和删除项目。和往常一样,我使用ng-repeat进入我的项目列表。后端没有问题。但事情已经发生了:

我使用unshift推送一些东西(而不是使用push I prepend追加),并使用remove()删除。我删除了一个项目,当我插入新的1时,ng-repeat似乎将删除的元素带回到列表中。这与使用jquery有很大不同。需要Angularjs Guru的帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

使用splice从数组中删除项目,而不是从DOM中删除元素。拼接是一种奇怪的功能,但基本上要删除索引i中的单个项目,你会做这样的事情:

$context.splice(i, 1);

通常,对于像AngularJS这样的框架,你应该避免做任何DOM操作;让数据驱动视图。