AngularJS实现一次监听多个值发生的变化


Posted in Javascript onAugust 31, 2016

一、$watch简单使用

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

$watch(watchExpression, listener, objectEquality);

每个参数的说明如下:

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

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

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

举个栗子:

$scope.name = 'hello';

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

    console.log(newValue);

    console.log(oldValue);

});

$timeout(function(){

    $scope.name = "world";

},1000);

二、监听多个值的变化

大家通常遇到的情况为通过$watch()一次监听一个值的变化,当然这种时候满足绝大部分情况。但是通过阅读官网对于$watch()的解释,$watch()还有第三个参数,第三个参数是一个布尔类型,表示是否深度监听,深度监听的例子就是是否进行比较对象的属性。

这样我们就可以实现一次监听多个值的变化。

示例代码

var app=angular.module("watchApp",[])
      .controller("watchController",["$scope",function($scope){
         $scope.object={};
         $scope.object.one=$scope.one;
         $scope.object.one=$scope.one;
         $scope.$watch("object",function(){
            .....
          },true);
      }])

总结

以上就是关于AngularJS如何一次监听多个值发生变化的全部内容,大家都学会了吗?希望这篇文章的内容对大家的学习和工作能有所帮助,如果有疑问可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
javascript Array对象基础知识小结
Nov 16 Javascript
kmock javascript 单元测试代码
Feb 06 Javascript
extjs 初始化checkboxgroup值的代码
Sep 21 Javascript
js拖拽一些常见的思路方法整理
Mar 19 Javascript
用console.table()调试javascript
Sep 04 Javascript
3种js实现string的substring方法
Nov 09 Javascript
javascript简单比较日期大小的方法
Jan 05 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
Nov 22 Javascript
AngularJS ionic手势事件的使用总结
Aug 09 Javascript
关于angularJs清除浏览器缓存的方法
Nov 28 Javascript
微信小程序实现鼠标拖动效果示例
Dec 01 Javascript
js读取本地文件的实例
Dec 22 Javascript
利用Angularjs和bootstrap实现购物车功能
Aug 31 #Javascript
JavaScript String(字符串)对象的简单实例(推荐)
Aug 31 #Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
Aug 31 #Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
Aug 31 #Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
Aug 31 #Javascript
基于JavaScript实现点击页面任何位置返回
Aug 31 #Javascript
jquery datatable服务端分页
Aug 31 #Javascript
You might like
各种战术和打法的原创者
2020/03/04 星际争霸
PHP大批量数据操作时临时调整内存与执行时间的方法
2011/04/20 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
PHP Reflection API详解
2015/05/12 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
jquery获取一组checkbox的值(实例代码)
2013/11/04 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
vue滚动tab跟随切换效果
2020/06/29 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
Vue通过provide inject实现组件通信
2020/09/03 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
小程序实现tab标签页
2020/11/16 Javascript
PYQT5实现控制台显示功能的方法
2019/06/25 Python
Python中的 sort 和 sorted的用法与区别
2019/08/10 Python
Python获取统计自己的qq群成员信息的方法
2019/11/15 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
使用canvas绘制贝塞尔曲线
2014/12/17 HTML / CSS
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
安踏官方商城:anta.cn
2019/12/16 全球购物
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
库房管理员岗位职责
2014/03/09 职场文书
cf搞笑广告词
2014/03/14 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书