--@angularJS--$scope.watch监听模型变化
2015-06-05 14:25
671 查看
$watch简单使用
$watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你。
$watch(watchExpression, listener, objectEquality);
每个参数的说明如下:
watchExpression:监听的对象,它可以是一个angular表达式如'name',或函数如function(){return $scope.name}。
listener:当watchExpression变化时会被调用的函数或者表达式,它接收3个参数:newValue(新值), oldValue(旧值), scope(作用域的引用);
objectEquality是个布尔参数,如果设置为true,这个可选的布尔型参数将会命令Angular去检查被监控对象的每个属性是否发生了变化。如果你想要监控数组中的元素,或者对 象上的所有属性,而不只是监控一个简单的值,你就可以使用这个参数。由于Angular需要遍历数组或者对象,如果集合比较大,那么运算负担就会比较重。
$watch 函数会返回一个函数,当你不再需要接收变更通知时,可以用这个返回的函数注销监控器。
如果我们需要监控一个属性,然后接着注销监控,我们可以使用以下代码:
...
var dereg = $scope.$watch('someModel.someProperty', callbackOnChange());
…
dereg();
$watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你。
$watch(watchExpression, listener, objectEquality);
每个参数的说明如下:
watchExpression:监听的对象,它可以是一个angular表达式如'name',或函数如function(){return $scope.name}。
listener:当watchExpression变化时会被调用的函数或者表达式,它接收3个参数:newValue(新值), oldValue(旧值), scope(作用域的引用);
objectEquality是个布尔参数,如果设置为true,这个可选的布尔型参数将会命令Angular去检查被监控对象的每个属性是否发生了变化。如果你想要监控数组中的元素,或者对 象上的所有属性,而不只是监控一个简单的值,你就可以使用这个参数。由于Angular需要遍历数组或者对象,如果集合比较大,那么运算负担就会比较重。
$watch 函数会返回一个函数,当你不再需要接收变更通知时,可以用这个返回的函数注销监控器。
如果我们需要监控一个属性,然后接着注销监控,我们可以使用以下代码:
...
var dereg = $scope.$watch('someModel.someProperty', callbackOnChange());
…
dereg();
相关文章推荐
- kendo mobile angularjs 不同页面之间进行通信
- angularjs directive design made easy
- AngularJS去掉的URL里的#号
- Angular 学习笔记 2015.6.4
- angularjs 定义指令学习1
- AngularJS学习之路--- $on、$emit和$broadcast的使用
- AngularJS依赖注入
- angularJS测试并集成到jinkens
- 有关Angular 2.0的一切
- 【AngularJs】---JSONP跨域访问数据传输
- 【Ionic】---AngularJS扩展基本布局
- 【AngularJs】---Error: [ng:areq] Argument is not a function, got undefined;
- 【AngularJs】---$sce 输出Html
- AngularJS中使用$resource(已更新)
- AngularJS中的控制器(controller)
- Javascript教程:AngularJS的五个超酷特性
- angularjs学习:$digest
- AngularJS笔记---数据绑定
- angularjs--指令
- AngularJS ng-include