如何在$ scope。$ watch方法中将oldVal与newVal进行比较?

时间:2016-01-25 17:43:58

标签: javascript angularjs

我已经定义了一个模态窗口,用户在其中选择与之前选择的值不同的值。模态窗口应在关闭后保留该值。我尝试使用$scope.$watch方法实现此功能,但似乎无法正常工作。我在下面定义了控制器:

Ctrl.js

$scope.openEpcfTreeModel = function() {
  $scope.$watch('nonPersistentProcess.requestedEpcfKey', function(oldVal,newVal){
    var oldEpcf = oldVal;
    console.log("oldEpcf",oldEpcf);
    console.log("newVal",newVal);
    if(newVal !== oldVal) {
          $scope.nonPersistentProcess.requestedEpcfKey = oldVal;
    }
  });
}

如何修复代码中的错误?

1 个答案:

答案 0 :(得分:2)

$scope.watch的正确功能签名是:

$scope.watch('nonPersistentProcess.requestedEpcfKey', function(newVal, oldVal) {
  // Rest of the code.
});

newVal位于参数列表中的oldVal之前。