AngularJS:在两个指令属性上使用$ watch并跟踪每个属性的oldValue和newValue?

时间:2014-12-08 19:40:28

标签: javascript angularjs

我有这样的指示:

.directive('stuff', function(){
  return{
     restrict: 'E',
     scope: {
       name: '=',
       otherName: '='
     },
     controller: 'myCtrl',
     templateUrl: 'mytemplate.html',
     link: function(scope, el, attr){
       //Stuff goes here
     }
  }
} 

我尝试在$watchname属性上投放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语句,考虑到这一点。但即使我多次触发手表,它们也总是一样的。当我为其中一个属性记录newValueoldValue时,我发现更改后newValueoldValue的值都设置为新值制作。例如,如果我将newValue的值从“bob”更改为“joe”,则nameoldValue[0]都会设置为newValue[0]

我需要做什么才能使joe oldValue name在最近的更改之前为nameoldValueotherName }}是最近更改之前otherName的值吗?

谢谢!

0 个答案:

没有答案