对angular 监控数据模型变化的事件方法$watch详解


Posted in Javascript onOctober 09, 2018

$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);

以上这篇对angular 监控数据模型变化的事件方法$watch详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
借用Google的Javascript API Loader来加速你的网站
Jan 28 Javascript
jQuery 一个图片切换的插件
Oct 09 Javascript
js实现页面转发功能示例代码
Aug 05 Javascript
js 表单提交后按钮变灰的实例代码
Aug 16 Javascript
如何获取网站icon有哪些可行的方法
Jun 05 Javascript
基于AngularJS实现iOS8自带的计算器
Sep 12 Javascript
javascript匀速动画和缓冲动画详解
Oct 20 Javascript
React-Native中禁用Navigator手势返回的示例代码
Sep 09 Javascript
JS计算距当前时间的时间差实例
Dec 29 Javascript
微信小程序基于高德地图查找位置并显示文字
Oct 30 Javascript
JavaScript find()方法及返回数据实例
Apr 30 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
May 29 jQuery
JS判断用户用的哪个浏览器实例详解
Oct 09 #Javascript
vue发送ajax请求详解
Oct 09 #Javascript
AngularJS 监听变量变化的实现方法
Oct 09 #Javascript
对angular4子路由&辅助路由详解
Oct 09 #Javascript
angular 未登录状态拦截路由跳转的方法
Oct 09 #Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
Oct 09 #Javascript
angularJS1 url中携带参数的获取方法
Oct 09 #Javascript
You might like
浅谈php://filter的妙用
2019/03/05 PHP
YII框架行为behaviors用法示例
2019/04/26 PHP
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
密码框显示提示文字jquery示例
2013/08/29 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
vue使用watch 观察路由变化,重新获取内容
2017/03/08 Javascript
Vue框架之goods组件开发详解
2018/01/25 Javascript
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
Python实现堆排序的方法详解
2016/05/03 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
Python列表list排列组合操作示例
2018/12/18 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
罗技英国官方网站:Logitech UK
2020/11/03 全球购物
美国折扣地毯销售网站:Rugs.com
2020/03/27 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
学习nginx基础知识
2021/09/04 Servers