【发布时间】:2015-03-19 15:05:29
【问题描述】:
哪种解决方案最好。在控制器中为每个数据设置三个手表,并相应地设置不同的方法或为所有三个变量设置一个手表,然后检查哪个更改并运行指定的方法。
在事件处理的寓言中,最好将事件委托给父对象,然后根据指定的事件委托给dom的部分。如果 Angular 允许这样观看,如何实现?
基本解决方案很简单,但需要三个手表:
$scope.$watch(function() {
return service.var1;
},
function callback(new,old) {
$scope.function1();
});
$scope.$watch(function() {
return service.var2;
},
function callback(new,old) {
$scope.function2();
});
$scope.$watch(function() {
return service.var3;
},
function callback(new,old) {
$scope.function3();
});
根据事件观察,第二种解决方案似乎更好,但我不知道如何确定被监视的元素:
$scope.$watch(function() {
return service.var1 + service.var2 + service.var3; },
function callback(new,old) {
var changed = ;//?here how to determine which variable changed
switch ( changed ) {
case 'var1' : $scope.function1();break;
case 'var2' : $scope.function2();break;
case 'var3' : $scope.function3();break; }
})
如何在 Angular 中实现对监视变量的委派?
【问题讨论】: