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
Oct 31 Javascript
yepnope.js 异步加载资源文件
Sep 08 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
Nov 01 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
Jun 24 Javascript
json实现添加、遍历与删除属性的方法
Jun 17 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
Jul 25 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
Nov 29 Javascript
基于javascript实现按圆形排列DIV元素(二)
Dec 02 Javascript
js实现图片左右滚动效果
Feb 27 Javascript
微信小程序 本地数据存储实例详解
Apr 13 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
Jul 05 Javascript
javascript实现拖拽碰撞检测
Mar 12 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
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
2011/07/28 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
destoon调用企业会员公司形象图片的实现方法
2014/08/21 PHP
PHP正则表达式之捕获组与非捕获组
2015/11/06 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
JQuery 操作Javascript对象和数组的工具函数小结
2010/01/22 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
Nodejs为什么选择javascript为载体语言
2015/01/13 NodeJs
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
cdn模式下vue的基本用法详解
2018/10/07 Javascript
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
python用来获得图片exif信息的库实例分析
2015/03/16 Python
Python加密方法小结【md5,base64,sha1】
2017/07/13 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
Python调用C语言的实现
2019/07/26 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
css3打造一款漂亮的卡哇伊按钮
2013/03/20 HTML / CSS
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
大二法英学生职业生涯规划范文
2014/02/27 职场文书
听课评语大全
2014/04/30 职场文书
2014年禁毒工作总结
2014/11/24 职场文书
初中差生评语
2014/12/29 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python
SQL Server内存机制浅探
2022/04/06 SQL Server
PyTorch中permute的使用方法
2022/04/26 Python
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers
Win10多屏显示如何设置?Win10电脑多屏显示设置操作方法
2022/07/07 数码科技