对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 相关文章推荐
javascript+iframe 实现无刷新载入整页的代码
Mar 17 Javascript
js禁止小键盘输入数字功能代码
Aug 01 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
Jun 09 Javascript
js 操作select与option(示例讲解)
Dec 20 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
Sep 20 Javascript
微信小程序 使用canvas制作K线实例详解
Jan 12 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
Nov 26 Javascript
vue ssr 指南详读
Jun 29 Javascript
vue中的watch监听数据变化及watch中各属性的详解
Sep 11 Javascript
node中的cookie的具体使用
Sep 13 Javascript
使用webpack打包后的vue项目如何正确运行(express)
Oct 26 Javascript
javascript this指向相关问题及改变方法
Nov 19 Javascript
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中读写文件实现代码
2011/10/20 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
Django 中 cookie的使用
2017/08/17 PHP
PHP获取远程http或ftp文件的md5值的方法
2019/04/15 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
js里怎么取select标签里的值并修改
2012/12/10 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
基于rem的移动端响应式适配方案(详解)
2017/07/07 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
Python中的字符串查找操作方法总结
2016/06/27 Python
python交互式图形编程实例(二)
2017/11/17 Python
Numpy数组的保存与读取方法
2018/04/04 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
浅谈Python基础—判断和循环
2019/03/22 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
奥巴马演讲稿
2014/01/08 职场文书
运动会解说词50字
2014/01/18 职场文书
重阳节登山活动方案
2014/02/03 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
卖房授权委托书样本
2014/10/05 职场文书
2014年党委工作总结
2014/11/22 职场文书
资金申请报告范文
2015/05/14 职场文书
感恩主题班会教案
2015/08/12 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js