zoukankan      html  css  js  c++  java
  • angularJs指令执行的机制==大概的三个阶段

    第一阶段:加载阶段

    angularJs要运行的话,需要去等待angular.js加载完成,加载完之后呢,angular就会去查找到ng-app这个指令,ng-app在每个应用里面只能出现一次,

    它也就相当于我们的main方法,angularjs找到了ng-app之后,就确定了我们应用的边界在哪里。

    所谓的边界,就是angularjs知道自己要管理哪一块的内容。

    这样的话,angularjs才可以去启动起来,加载完成之后,就进入了第二阶段

    第二阶段:编译阶段

    这个阶段,angular.js会做很多的事情

    第一步:首先它会去遍历dom,把整个dom结构中的所有的指令全部查找出来,然后缓存到内部的缓存里面去

    第二步:会根据指令代码中的template,replace,transclue等对dom结构进行一些变换,

               这时候,如果代码中存在compile函数,angluarjs也会去调用这个函数,如下是自定义的compile

              不过一般我们在自定义指令的时候,是不会去自定义compile函数的,因为在调用自定义compile的时候,还要去调用内部默认的compile,否则默认的compile默认的行为就会被覆盖

    第三阶段:链接阶段

    链接阶段又会做些什么事情呢?

    首先,每条指令的link指令都会被调用

    我们在指令的编写指令代码的时候,除了可以写compile函数以外,还可以写link自定义函数,

    angularjs在找到这个函数以后,angulajs也会去运行link函数,

    我们知道,不要在controller或才其他地方操作dom,因为这个思想不符合angularjs的设计思想,

    那么dom在哪些地方可以操作呢?我们可以在link中操作dom

    那么这个link函数可以做些什么事情呢?

    它可以为dom元素绑定一些事件,绑定作用域,比如双向数据绑定

    指令和双向数据绑定,就是在link这个阶段运行的

    以上就是angularjs指令执行的三个阶段。

    以上内容了解即可。无需刻意去记忆。

     

  • 相关阅读:
    同步、异步、阻塞和非阻塞区别
    SpringMVC文件上传实现
    Java注解入门
    SpringMVC实现一个controller写多个方法
    提高tomcat的并发能力
    人一生追求的是什么
    python class对象转换成json/字典
    python可分组字典
    python enumerate函数用法
    Python特殊语法--filter、map、reduce、lambda
  • 原文地址:https://www.cnblogs.com/songyunxinQQ529616136/p/6206461.html
Copyright © 2011-2022 走看看