加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular.js中使用$watch监听模型变化

发布时间:2020-12-17 09:35:03 所属栏目:安全 来源:网络整理
导读:$ watch 简单使用 $ watch 是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你。 $ watch (watchExpression,listener,objectEquality); 每个参数的说明如下: watchExpression: 监听的对象,它可以是一个 angular 表达式如'name',或函

$watch简单使用

$watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你。

$watch(watchExpression,listener,objectEquality);

每个参数的说明如下:

  1. watchExpression:监听的对象,它可以是一个angular表达式如'name',或函数如function(){return $scope.name}。

  2. listener:当watchExpression变化时会被调用的函数或者表达式,它接收3个参数:newValue(新值),oldValue(旧值),scope(作用域的引用)

  3. objectEquality:是否深度监听,如果设置为true,它告诉Angular检查所监控的对象中每一个属性的变化.如果你希望监控数组的个别元素或者对象的属性而不是一个普通的值,那么你应该使用它

举个栗子:

$scope.name ='hello';

varwatch=$scope.$watch('name',function(newValue,oldValue,scope){

console.log(newValue);

console.log(oldValue);

});

$timeout(function(){

$scope.name ="world";

},1000);

$watch性能问题

太多的$watch将会导致性能问题,$watch如果不再使用,我们最好将其释放掉。

$watch函数返回一个注销监听的函数,如果我们想监控一个属性,然后在稍后注销它,可以使用下面的方式:

varwatch=$scope.$watch('someModel.someProperty',callback);

//...

watch();

还有2个和$watch相关的函数:

$watchGroup(watchExpressions,listener);

$watchCollection(obj,listener);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读