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判断两种格式的输入日期的正确性的代码
Mar 25 Javascript
JScript 脚本实现文件下载 一般用于下载木马
Oct 29 Javascript
关于firefox的ElementTraversal 接口 使用说明
Nov 11 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
Dec 10 Javascript
javascript中常用编程知识
Apr 08 Javascript
javascript读写json示例
Apr 11 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
Mar 18 Javascript
基于vue 开发中出现警告问题去除方法
Jan 25 Javascript
使用Node.js实现一个多人游戏服务器引擎
Mar 13 Javascript
Vue-CLI 项目在pycharm中配置方法
Aug 30 Javascript
Vue记住滚动条和实现下拉加载的完美方法
Jul 31 Javascript
Openlayers学习之地图比例尺控件
Sep 28 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
笑谈配置,使用Smarty技术
2007/01/04 PHP
php面向对象全攻略 (四)构造方法与析构方法
2009/09/30 PHP
php smarty模版引擎中的缓存应用
2009/12/11 PHP
php防攻击代码升级版
2010/12/29 PHP
深入apache host的配置详解
2013/06/09 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
JS 有名函数表达式全面解析
2010/03/19 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
Vue.js中的computed工作原理
2018/03/22 Javascript
讲解vue-router之什么是动态路由
2018/05/28 Javascript
推荐几个不错的console调试技巧实现
2019/12/20 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
利用Python获取操作系统信息实例
2016/09/02 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
咖啡书吧创业计划书
2014/01/13 职场文书
潘婷洗发水广告词
2014/03/14 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
金融系应届毕业生求职信
2014/05/26 职场文书
2014年客房部工作总结
2014/11/22 职场文书
学校禁毒宣传活动总结
2015/05/08 职场文书
2015年小学一年级班主任工作总结
2015/05/21 职场文书
Python字符串常规操作小结
2022/04/03 Python