为了账号安全,请及时绑定邮箱和手机立即绑定

观看多个$ scope属性

/ 猿问

观看多个$ scope属性

慕妹3242003 2019-11-05 15:18:55

有没有一种方法可以使用以下方法订阅多个对象上的事件 $watch


例如


$scope.$watch('item1, item2', function () { });


查看完整描述

3 回答

?
至尊宝的传说

从AngularJS 1.1.4开始,您可以使用$watchCollection:


$scope.$watchCollection('[item1, item2]', function(newValues, oldValues){

    // do stuff here

    // newValues and oldValues contain the new and respectively old value

    // of the observed collection array

});


查看完整回答
反对 回复 2019-11-05
?
MMTTMM

$watch 第一个参数也可以是一个函数。


$scope.$watch(function watchBothItems() {

  return itemsCombinedValue();

}, function whenItemsChange() {

  //stuff

});

如果您的两个组合值很简单,则第一个参数通常只是一个角度表达式。例如,firstName和lastName:


$scope.$watch('firstName + lastName', function() {

  //stuff

});


查看完整回答
反对 回复 2019-11-05
?
梵蒂冈之花

从AngularJS 1.3开始,有一个新方法称为$watchGroup观察一组表达式。


$scope.foo = 'foo';

$scope.bar = 'bar';


$scope.$watchGroup(['foo', 'bar'], function(newValues, oldValues, scope) {

  // newValues array contains the current values of the watch expressions

  // with the indexes matching those of the watchExpression array

  // i.e.

  // newValues[0] -> $scope.foo 

  // and 

  // newValues[1] -> $scope.bar 

});


查看完整回答
反对 回复 2019-11-05

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信