$watch、$digest、$apply
$watch、$digest、$apply
$watch 代表的就是对数据源的监听,当数据源发生变化,就会触发第二个参数的回调函数
$digest 代表触发一个数据源变化的事件
$apply 代表对于$digest的一个封装,他多了一个参数
$watch
第一个参数就是要监听的数据源
第二个参数就是当监听的数据源发生变化了,触发的一个回调函数,回调函数包含两个参数,分别代表(新值、旧值)
$digest 是用来手动触发监听事件的,通常不需要手动触发,而是由$apply来调用
$apply 只是把$digest 做了一次封装,来提供手动触发,那么为什么需要手动触发呢,正常情况下,在angular下,修改数据源就会自动触发,但是要是不在angular上下文的情况下,如浏览器DOM事件,setTimeout执行,这种情况下,angular无法获取到事件,所以,通过apply来手动触发一下,在apply的参数中去修改数据源
$observe,他是在定义Directive的时候,针对link的第三个参数attr来做的监听
attr,实际上就是定义的元素上的attribute参数,通过attr可以获取DOM中的参数
通过$observe来进行监听,当参数的值发生变化了,就会触发回调函数,他和watch的不同就是,监听的宿主对象不同
随机推荐
- 4.PopupWindow
想要弹出内容就可以考虑使用悬浮窗 布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android& ...
- MVC 使用HandleErrorAttribute统一处理异常
HandleErrorAttribute继承自FilterAttribute,且实现了IExceptionFilter接口. 属于AOP思想的一种实现,MVC的四大筛选器(权限,动作,结果,异常)中的 ...
- 阿牛的EOF牛肉串[HDU2047]
阿牛的EOF牛肉串 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- 【wikioi】1222 信与信封问题(二分图+特殊的技巧)
http://wikioi.com/problem/1222/ 一开始我就想到这样构图的,即可能的连边.但是似乎无法判断. 然后想来想去想不出来.. 题解: 同样是二分图,将可能的连边,然后跑一次最大 ...
- 基于nginx tomcat redis分布式web应用的session共享配置
一.前言 nginx 作为目前最流行的开源反向代理HTTP Server,用于实现资源缓存.web server负载均衡等功能,由于其轻量级.高性能.高可靠等特点在互联网项目中有着非常普遍的应用,相关 ...
- CSS3选择器(一)之基本选择器
CSS的选择器,我想大家并不会陌生吧,因为天天在使用,但对于CSS3的选择器,要运用的灵活到位,我想对很多朋友还是一定的难度,特别是CSS3中的:nth选择器.那么从现在开始我们先丢开他们版本的区别, ...
- jquery判断是否出现滚动条
$(document).ready(function(){ var winH = $(window).height(); //页面可视区域高度 $(window).scroll(function () ...
- JS让input按钮不能点击
<input value="开通" type="button" id="tijiao" class="button" ...
- FXK Javascript
Javascript是一门神奇的语言,很不爽的一门语言,很纠结的一门语言. 以下内容,专业人士请不要看,只供像我一样的菜鸟参考. (1)Javascript找不到函数.明明已经引用了JS文件,却提示找 ...
- 文件上传\">将在3秒钟后返回前页
conn.php: <?php $id=mysql_connect('localhost','root','root'); mysql_select_db("db_database12 ...