У меня есть массив, который я показываю с помощью ngRepeat, и у меня есть форма внизу, которая позволяет добавлять к указанному массиву. Это используется для работы в предыдущей версии углового; То, как элементы отслеживаются в ngRepeat, изменились в более ранних версиях угловых, поэтому я еще не уверен, если это большой, но когда я нажимаю элемент в массив, все элементы, похоже, привязаны к одной и той же модели.Добавление элементов в массив, кажется, прерывается ngRepeat
Это, как я добавить элемент:
var vm = this;
this.items = [];
this.addItem = function(item) {
vm.items.push(item);
}
и I цикл над ними, как это:
<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 демонстрирует проблему.
Это нормально: 'newItem' всегда тот же объект. Просто скопируйте его в функцию 'addItem', например, с помощью' vm.items.push (angular.copy (item)); ' – Blackhole
Да, это решает. thanks – Genu
Вы когда-нибудь объявляли newItem внутри своего контроллера? Вы ссылаетесь на main.newItem, но я не вижу его объявленным. – Justin