Я довольно новичок в Угловом, поэтому, если есть некорректное мышление здесь, пожалуйста, дайте мне знать.Остановить двухстороннюю привязку данных на модели
Я пытаюсь создать две отдельные переменные области, основанные на том же наборе данных. Я предположил, что я просто смогу установить их для разных переменных (как показано ниже), и это сработает. Однако я обнаружил, что независимо от того, что они назвали или как они определены (даже в директиве!), Изменение каждого изменяет их все.
Итак ... что я ожидаю/хотел бы видеть, так это то, что если я изменю ввод в верхнем повторе, он изменит модель только для этого повтора. В настоящее время он меняет все три.
В каком месте я ошибаюсь? Я предполагаю, что это имеет какое-то отношение к двухстороннему привязке данных. Заранее спасибо!
HTML:
<h4>data</h4>
<div ng-repeat="person in data">
{{person.name}}
<input ng-model="person.name" />
</div>
{{data[0].name}}
<br>
<br>
<h4>testData</h4>
<div ng-repeat="person in testData">
{{person.name}}
<input ng-model="person.name" />
</div>
{{testData[0].name}}
<h4>Directive</h4>
<div tester data="data"></div>
Директива HTML:
<div ng-repeat="person in data">
{{person.name}}
<input ng-model="person.name" />
</div>
{{data[0].name}}
JS:
var app = angular.module('test', []);
(function() {
var testController = function ($scope) {
var data = [
{name:'Jordan', age:30},
{name:'Sean', age:32},
{name:'Seth', age:26}
];
$scope.data = data;
$scope.testData = data;
}
testController.$inject = ['$scope', '$http'];
app.controller('testController', testController);
}())
app.directive('tester', function(){
return {
restrict: 'A',
templateUrl: 'directive.html',
//If percent = true then that table should have a "percent change" th
scope:{
data: '=data'
}
}
})
Это прекрасно работает, и именно то, что я искал. Успешно справился. Я соглашусь, как только это позволит мне! – Aarmora
hah, никак ... Я столкнулся с этой точной проблемой вчера. Хотел бы я знать об этом вчера! – Ronnie
@DarinDimitrov Удивительное решение –