zoukankan      html  css  js  c++  java
  • $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的不同就是,监听的宿主对象不同

  • 相关阅读:
    MongoDB学习笔记(二)
    mongoDB学习笔记(一)
    docker官方文档笔记
    nagios
    网络流量状态命令总结 (含notp安装)
    other
    一键搭建LNMP脚本
    linux问题总结
    linux中VI编写C程序。。。
    centos 7 安装python3.5.1
  • 原文地址:https://www.cnblogs.com/yuyutianxia/p/4781787.html
Copyright © 2011-2022 走看看