从Angular中的ngList中删除项目

时间:2014-03-14 13:45:34

标签: javascript angularjs

我在文本框中使用ngList来获取数据并将数据发布到我的服务器。我发现的问题是,虽然我可以通过删除索引直接影响生成的数组,但在以这种方式删除项目时,输入字段中的字符串不会受到影响。

这里的问题是,只要修改了文本字段,该字段中包含的内容就会立即更新模型,恢复删除的任何项目。

http://plnkr.co/edit/EqkWwyLwvHrrhT6epOYP?p=preview

当模型更新时,是否有人有更新文本字段中的字符串以匹配模型的解决方案?我的想法是在我的函数或$ watch中使用$ apply,但在这两种情况下我都获得了$ apply in progress错误。

1 个答案:

答案 0 :(得分:2)

$scope.states.splice(index, 1);

它不会更新ng-list,因为只有先前值不等于当前值严格时才会调用更改机制...

因此,如果您将创建新实例而不是拼接当前,则不会调用任何内容,因为它是相同的数组实例,因此将此代码替换为当前代码并且它将是您想要的...

var tmpList = angular.copy($scope.states);
tmpList.splice(index, 1);
$scope.states = tmpList;

这里是PLUNKER