• $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的不同就是,监听的宿主对象不同

  • 相关阅读:
    来自Ext的UI边界识别函数constrain
    js模拟静态方法
    ExtJs 带参数的MVC
    call
    Ext表单验证
    【Web入门系列】初探HttpServletResponse
    【Web入门系列】初探HttpServletRequest
    【Java入门系列】面向对象特性-多态
    【Java入门系列】final关键字
    【Java入门系列】static关键字
  • 原文地址:https://www.cnblogs.com/yuyutianxia/p/4781787.html
Copyright © 2020-2023  润新知