admin管理员组文章数量:1794759
$watch
$watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你。$watch(watchExpression, listener, objectEquality);
具体参数的说明如下:
watchExpression:监听的对象,它可以是一个angular表达式如'name',或函数如function(){return $scope.name}。
listener:当watchExpression变化时会被调用的函数或者表达式,它接收3个参数:newValue(新值), oldValue(旧值), scope(作用域的引用)
objectEquality:是否深度监听,如果设置为true,它告诉Angular检查所监控的对象中每一个属性的变化. 如果你希望监控数组的个别元素或者对象的属性而不是一个普通的值, 那么你应该使用它
举个栗子:
var myapp=angular.module("myapp",[]); myapp.controller("myCtrl",function($scope,$timeout){$scope.$watch("exp",function(newVal,oldVal){console.log(newVal); console.log(oldVal); }); $timeout(function(){$scope.exp="try" },1000) }
$watch性能问题太多的$watch将会导致性能问题,$watch如果不再使用,我们最好将其释放掉。
$watch函数返回一个注销监听的函数,如果我们想监控一个属性,然后在稍后注销它,可以使用下面的方式:
[javascript] view plain copy
- var watch = $scope.$watch('someModel.someProperty', callback);
- //...
- watch();
$watchGroup(watchExpressions, listener);
$watchCollection(obj, listener);
本文标签: WATCH
版权声明:本文标题:$watch 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1692789531a199050.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论