浅谈Angular.js中使用$watch监听模型变化


Posted in Javascript onJanuary 10, 2017

$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如果不再使用,我们最好将其释放掉。

$watch函数返回一个注销监听的函数,如果我们想监控一个属性,然后在稍后注销它,可以使用下面的方式:

var watch = $scope.$watch('someModel.someProperty', callback);

//...

watch();

还有2个和$watch相关的函数:

$watchGroup(watchExpressions, listener);

$watchCollection(obj, listener);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
Dec 26 Javascript
用原生JS获取CLASS对象(很简单实用)
Oct 15 Javascript
javascript中使用正则表达式清理table样式的代码
Apr 01 Javascript
JS轮播图中缓动函数的封装
Nov 25 Javascript
js 调用百度分享功能
Feb 27 Javascript
JavaScript正则获取地址栏中参数的方法
Mar 02 Javascript
JS+Canvas绘制动态时钟效果
Nov 10 Javascript
原生JavaScript实现的简单放大镜效果示例
Feb 07 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
Apr 08 Javascript
vue实现树形结构样式和功能的实例代码
Oct 15 Javascript
vue 实现input表单元素的disabled示例
Oct 28 Javascript
vue实现购物车的小练习
Dec 21 Vue.js
利用Query+bootstrap和js两种方式实现日期选择器
Jan 10 #Javascript
js实现背景图自适应窗口大小
Jan 10 #Javascript
微信JSAPI支付操作需要注意的细节
Jan 10 #Javascript
jQuery使用ajax方法解析返回的json数据功能示例
Jan 10 #Javascript
ajax实现动态下拉框示例
Jan 10 #Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
Jan 10 #Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
Jan 10 #Javascript
You might like
php查询mssql出现乱码的解决方法
2014/12/29 PHP
ThinkPHP中limit()使用方法详解
2016/04/19 PHP
PHP实现验证码校验功能
2017/11/16 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
Jquery替换已存在于element上的event的方法
2010/03/09 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
Javascript对象属性方法汇总
2013/11/21 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
javascript实现当前页导航激活的方法
2015/02/27 Javascript
JS实现点击上移下移LI行数据的方法
2015/08/05 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
js 两数组去除重复数值的实例
2017/12/06 Javascript
Vuex提升学习篇
2018/01/11 Javascript
讲解vue-router之什么是动态路由
2018/05/28 Javascript
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
python实现flappy bird小游戏
2018/12/24 Python
简单了解python中的与或非运算
2019/09/18 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
巴西网上药店:Drogaria Araujo
2021/01/06 全球购物
室内设计专业学生的自我评价分享
2013/11/27 职场文书
中式结婚主持词
2014/03/14 职场文书
社会实践先进工作者事迹材料
2014/05/06 职场文书
个人批评与自我批评
2014/10/15 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书
2016年区委书记抓基层党建工作公开承诺书
2016/03/25 职场文书