Я пытаюсь организовать переменные (в другом месте) в массиве, но это нарушает двустороннюю привязку. Я не понимаю, почему я могу привязываться к переменной напрямую, но не косвенно. Думаю, это глупая ошибка. Пример here (jsfiddle) или ниже:ngModel with Arrays
HTML:
<div ng-controller="MyCtrl">
<input ng-model="test1"></input>
<input ng-model="test2[0]"></input>
<p>{{test1}}</p>
</div>
JavaScript:
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.test1 = 'text goes here';
$scope.test2 = [$scope.test1];
}
Как можно видеть первый вход связан с переменной и обновления его правильно, в то время как второй берет начальное значение, но не связан.
Спасибо. Я правильно понял: привязка работает, но привязывается к копии? Как я могу предотвратить привязку к копии? – F43nd1r
Так работает JS. Если вы поместите переменную в массив, вы сохраните ее значение, а не переменную. См. Http://stackoverflow.com/questions/5865094/how-can-i-store-reference-to-a-variable-within-an-array#answer-5865121 – kiswa
Я принял ответ, потому что это технически правильно, хотя он сам не решает проблему. Я попытаюсь обернуть эти примитивные переменные в объект, поэтому я могу скопировать ссылку на объект в массив. Изменить - это работает. Это требует еще немного кода. https://jsfiddle.net/h8xstepp/ – F43nd1r