【发布时间】:2016-01-20 15:15:29
【问题描述】:
我有一个简单的任务,结果并不是那么简单。我需要复制一个$scope 变量,而不使用angular.copy(),因为如果我使用复制功能,对象就不能如果进行了更改,请与观察者的newVal 进行比较,因为它不是同一个对象。所以if (newVal !== original) 永远不会评估为false。如何存储范围变量的原始值但不再更新此变量,即使范围变量发生更改?有可能吗?
core.directive('saveButton', function () {
return {
scope: {
actionParams: '=',
},
templateUrl: 'app/views/components/core/save-button.html',
link: function(scope, element, attrs) {
var original = scope.actionParams;
scope.$watch(function() {
return scope.actionParams;
}, function(newVal, oldVal) {
// I want to check if the original value has changed, not the previous value
if (newVal !== original) {
scope.changed = true;
}
else {
scope.changed = false;
}
}, true);
}
}
});
【问题讨论】:
-
@jcc 是的,也不起作用:/
标签: angularjs