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 相关文章推荐
angularjs中的e2e测试实例
Dec 06 Javascript
JavaScript中的值类型转换介绍
Dec 31 Javascript
JSON字符串和对象相互转换实例分析
Jun 16 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
Sep 23 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
Jan 27 Javascript
node.js 抓取代理ip实例代码
Apr 30 Javascript
vue中,在本地缓存中读写数据的方法
Sep 21 Javascript
layui对工具条进行选择性的显示方法
Sep 19 Javascript
layui监听select变化,以及设置radio选中的方法
Sep 24 Javascript
vue路由切换时取消之前的所有请求操作
Sep 01 Javascript
JavaScript浅层克隆与深度克隆示例详解
Sep 01 Javascript
微信小程序选择图片控件
Jan 19 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中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
JavaScript中null与undefined分析
2009/07/25 Javascript
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
js每隔5分钟执行一次ajax请求的实现方法
2013/11/27 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
JavaScript模块规范之AMD规范和CMD规范
2015/10/27 Javascript
jQuery与JavaScript节点创建方法的对比
2016/11/18 Javascript
Angular4学习笔记之准备和环境搭建项目
2017/08/01 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
Python面向对象编程中的类和对象学习教程
2015/03/30 Python
Python中List.index()方法的使用教程
2015/05/20 Python
Python中关于使用模块的基础知识
2015/05/24 Python
Python获取linux主机ip的简单实现方法
2016/04/18 Python
Python实现简单的语音识别系统
2017/12/13 Python
Python对象转换为json的方法步骤
2019/04/25 Python
简单了解python中对象的取反运算符
2019/07/01 Python
浅谈Python中函数的定义及其调用方法
2019/07/19 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
Jupyter打开图形界面并画出正弦函数图像实例
2020/04/24 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
老师推荐信
2013/10/28 职场文书
工厂厂长的职责
2013/12/12 职场文书
遗嘱公证书标准样本
2014/04/08 职场文书
建筑工程催款函
2015/06/24 职场文书
学习党史心得体会2016
2016/01/23 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
导游词之峨眉乐山/兵马俑/北京故宫御花园
2019/09/03 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python
使用JS实现简易计算器
2021/06/14 Javascript
MySQL时区造成时差问题
2022/04/13 MySQL