我有这样的指示:
.directive('stuff', function(){
return{
restrict: 'E',
scope: {
name: '=',
otherName: '='
},
controller: 'myCtrl',
templateUrl: 'mytemplate.html',
link: function(scope, el, attr){
//Stuff goes here
}
}
}
我尝试在$watch
和name
属性上投放otherName
,我需要能够跟踪oldValue
和{{1} } 每个。这就是我在链接函数中编写$ watch的方法:
newValue
出于某种原因,scope.$watchCollection('[name, otherName]', function(newValue, oldValue){
//Do stuff -- newValue[0] is the new value of name, newValue[1] is the new value for otherName, etc
}
和oldValue
始终相同。我知道他们最初应该是相同的,我有一个if语句,考虑到这一点。但即使我多次触发手表,它们也总是一样的。当我为其中一个属性记录newValue
和oldValue
时,我发现更改后newValue
和oldValue
的值都设置为新值制作。例如,如果我将newValue
的值从“bob”更改为“joe”,则name
和oldValue[0]
都会设置为newValue[0]
。
我需要做什么才能使joe
oldValue
name
在最近的更改之前为name
,oldValue
为otherName
}}是最近更改之前otherName
的值吗?
谢谢!