浅谈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的滚动新闻列表
Jun 19 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
Dec 16 Javascript
JavaScript的事件代理和委托实例分析
Mar 25 Javascript
介绍JavaScript的一个微型模版
Jun 24 Javascript
JavaScript实现将文本框的值插入指定位置的方法
Aug 13 Javascript
jQuery实用技巧必备(中)
Nov 03 Javascript
jQuery密码强度验证控件使用详解
Jan 05 Javascript
js实现水平滚动菜单导航
Jul 21 Javascript
详解Vue文档中几个易忽视部分的剖析
Mar 24 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
Mar 04 Javascript
前端Vue项目详解--初始化及导航栏
Jun 24 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
Nov 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
8个出色的WordPress SEO插件收集
2011/02/26 PHP
php无序树实现方法
2015/07/28 PHP
深入浅析用PHP实现MVC
2016/03/02 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
Smarty模板配置实例简析
2019/07/20 PHP
js实现的网站首页随机公告随机公告
2007/03/14 Javascript
基于jQuery的日期选择控件
2009/10/27 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
2013/11/19 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
JavaScript中的this引用(推荐)
2016/08/05 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
Python中的匿名函数使用简介
2015/04/27 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
Python实现的简单模板引擎功能示例
2017/09/02 Python
django2 快速安装指南分享
2018/01/05 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
美国宠物商店:Wag.com
2016/10/25 全球购物
自我鉴定三原则
2014/01/13 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
北京故宫导游词
2015/01/31 职场文书
物业工程部经理岗位职责
2015/04/09 职场文书
信息简报范文
2015/07/21 职场文书
《猴王出世》教学反思
2016/02/23 职场文书
NASA 机智号火星直升机拍到了毅力号设备碎片
2022/04/29 数码科技