将项添加到数组似乎打破了ngRepeat

时间:2015-02-12 16:41:43

标签: angularjs angularjs-ng-repeat

我有一个使用ngRepeat显示的数组,我在底部有一个表单,可以添加到所述数组。这用于以前版本的角度;在ngRepeat中跟踪项目的方式在更新版本的角度中已经改变,所以我还不确定这是否很大,但当我将项目推送到数组时,所有项目似乎都绑定到相同的模型。

这是我添加项目的方式:

var vm = this;

this.items = [];

this.addItem = function(item) {
    vm.items.push(item);
}

我像这样循环它们:

<ul>
    <li ng-repeat="item in main.items track by $index">{{item.id}} - {{item.value}}</li>
</ul>
<hr>
<input ng-model="main.newItem.id" type="text" placeholder="id">
<input ng-model="main.newItem.value" type="text" placeholder="value">
<button ng-click="main.addItem(main.newItem)">Add Item</button>

以下是展示此问题的plnkr

1 个答案:

答案 0 :(得分:0)

用户Blackhole

回答

在将项目添加到数组之前需要复制该项目

vm.items.push(angular.copy(item));