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 相关文章推荐
一段批量给页面上的控件赋值js
Jun 19 Javascript
JS保留两位小数 四舍五入函数的小例子
Nov 20 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
Feb 12 Javascript
JS自定义选项卡函数及用法实例分析
Sep 02 Javascript
基于JavaScript实现动态添加删除表格的行
Feb 01 Javascript
javascript实现的上下无缝滚动效果
Sep 19 Javascript
基于jQuery实现弹幕APP
Feb 10 Javascript
Vue.js父与子组件之间传参示例
Feb 28 Javascript
JS基于ES6新特性async await进行异步处理操作示例
Feb 02 Javascript
VueJS 取得 URL 参数值的方法
Jul 19 Javascript
node 版本切换的实现
Feb 02 Javascript
JS实现点星星消除小游戏
Mar 24 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使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
javascript题目,重写函数让其无限相加
2012/02/15 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
实用jquery操作表单元素的简单代码
2016/07/04 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
jQuery插件zTree实现删除树节点的方法示例
2017/03/08 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
Preload基础使用方法详解
2020/02/03 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
Python基于scrapy采集数据时使用代理服务器的方法
2015/04/16 Python
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
Python 支付整合开发包的实现
2019/01/23 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
商务英语大学生职业生涯规划书范文
2014/01/01 职场文书
2014年感恩母亲演讲稿
2014/05/27 职场文书
设计专业自荐信
2014/06/19 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
外国人来华邀请函
2015/01/31 职场文书
幼儿园母亲节活动总结
2015/02/10 职场文书
法定代表人免职证明
2015/06/24 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python