浅谈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 无废话系列教程(二) jquery实战篇上
Jun 23 Javascript
Ubuntu 11.10 安装Node.js的方法
Nov 30 Javascript
jquery简单实现图片切换效果的方法
May 12 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
Aug 20 Javascript
浅谈Sublime Text 3运行JavaScript控制台
Jun 06 Javascript
JS清除字符串中重复值的实现方法
Aug 03 Javascript
JS中对数组元素进行增删改移的方法总结
Dec 15 Javascript
AngularJS自定义指令实现面包屑功能完整实例
May 17 Javascript
js实现鼠标跟随运动效果
Aug 02 Javascript
ES6 对象的新功能与解构赋值介绍
Feb 05 Javascript
JS精确判断数据类型代码实例
Dec 18 Javascript
sharp.js安装过程中遇到的问题总结
Apr 02 Javascript
利用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
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
thinkphp分页集成实例
2017/07/24 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
phpinfo的知识点总结
2019/10/10 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
JavaScript随机生成信用卡卡号的方法
2015/04/07 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】
2016/05/25 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
JavaScript Array.flat()函数用法解析
2020/09/02 Javascript
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
详解Python中的测试工具
2019/06/09 Python
python实现按行分割文件
2019/07/22 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
python实现数据结构中双向循环链表操作的示例
2020/10/09 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
大学生个人自我鉴定
2013/12/03 职场文书
就业自我评价
2014/02/04 职场文书
铲车司机岗位职责
2014/03/15 职场文书
社区志愿者培训方案
2014/06/10 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书