我对Angular相当陌生,所以如果这里有一些不正确的想法,请告诉我。停止双向数据绑定模型
我想根据相同的数据集创建两个单独的范围变量。我认为我只是可以将它们设置为不同的变量(如下所示),它会起作用。然而,我发现无论他们被命名了什么或者他们是如何定义的(甚至在一个指令中!),改变它们都会改变它们。
所以......我期望/希望看到的是,如果我改变顶部重复中的输入,它将只会改变重复的模型。目前它改变了所有三个。
我要去哪里错了吗?我认为这与双向数据绑定有关。提前致谢!
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 2014-10-07 19:58:09
哈,没办法...昨天我遇到了这个确切的问题。希望我昨天知道这件事! – Ronnie 2014-10-07 22:05:15
@DarinDimitrov真棒解决方案 – 2017-03-16 12:56:49