美文网首页
AngularJS1.*指令体系

AngularJS1.*指令体系

作者: 小漠穷秋 | 来源:发表于2017-11-10 15:03 被阅读0次

知识点:

1.指令包含的概念
2.指令的执行顺序
3.指令中的scope
4.指令的长相

解释:

指令作为angularjs中的一种面向组件编程的尝试出现。符合webcomponents规范。用来打造可复用的组件。
常见的指令形式如下:


image.png

1.指令包含的概念
restrict 限定指令绑定元素、属性
replace 表示是否进行替换
scope 表示指令自己的scope
compile 表示指令编译阶段的函数 返回link函数
link 表示指令的执行过程
element 表示指令所在元素。默认为jQLite,如果引入JQ,则为JQ对象。
attr 表示指令的属性

2.指令的执行顺序
引用引导启动之后,Angular使用内置的$compile服务来遍历DOM元素。遇到非浏览器元素的时候,开始认为是Angular指令。指令包含Angular内置指令(如ng-click)和自定义指令。扫描完所有指令之后,分别执行每个指令的compile方法。compile 方法返回一个 link 函数,被添加到稍后执行的 link 函数列表中。这被称为编译阶段。如果一个指令需要被克隆很多次(比如 ng-repeat),compile函数只在编译阶段被执行一次,复制这些模板,但是link 函数会针对每个被复制的实例被执行。所以分开处理,让我们在性能上有一定的提高。这也说明了为什么在 compile 函数中不能访问到scope对象。在编译阶段之后,就开始了链接(linking)阶段。在这个阶段,所有收集的 link 函数将被一一执行。指令创造出来的模板会在正确的scope下被解析和处理,然后返回具有事件响应的真实的DOM节点。

3.指令中的Scope
指令是独立的作用域。需要指定和父类controller作用域的关系。分为三种
默认:共享controller的scope,相当于双向数据绑定。
{}:表示隔离独有自己的作用域
scope:true 表示继承父类scope,相当于拷贝了一份。
其中{}又分为三种策略: = & @
@表示拷贝父scope中的某个Model到自己的scope中
=表示拷贝付scope中的某个model,并且实现双向数据绑定
&表示拷贝父类scope的方法到自己的scope

4.指令的长相


image.png

相关文章

  • AngularJS1.*指令体系

    知识点: 1.指令包含的概念2.指令的执行顺序3.指令中的scope4.指令的长相 解释: 指令作为angular...

  • 第四章:处理器体系结构

    处理器体系结构 一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构(Instruction-Set Ar...

  • 2018-05-15

    中央处理器知识体系结构 会持续更新,补充。 控制器的功能 取指令 发出指令地址,取出指令的内容。 分析指令 (1)...

  • [译] ARMv8-A架构基础之ARMv8-A指令集

    A64指令集与现有的A32指令集相似。 指令本身仍然是32位宽,并且具有相似的语法。 指令集使用ARMv8-A体系...

  • 3.RISC 和 CISC 的区别

    CISC complex instruction set computer 复杂指令集cpu cisc 体系的设计...

  • 指令集:MIPS基本指令与其他指令集之间对比

    各种体系结构的基本指令之间有很多的相似之处,这里我们以MIPS的基本指令为基准,对比另外的指令集。 MIPS主要指...

  • 热敏打印机编程 ESC/POS指令

    ESC/POS指令 ESC/POS©指令体系是由EPSON发明的一套专有POS打印机指令系统市面上绝大部分打印机兼...

  • 指令集、体系架构、微架构 [转]

    指令集、体系架构、微架构 [转] 转载自《操作系统真相还原》 指令集是什么?表面上看它是一套指令的集合。集合的意思...

  • iOS Xcode认识之——architecture

    一、在工程指令集选项中: 1、Architectures(体系结构):指定工程被编译成可支持哪些指令集类型,支持多...

  • JVM

    JVM 帮助指令代码(字节码)与底层进行(操作系统平台和执行指令并管理资源的硬件体系结构)交互。对于字节码来说,它...

网友评论

      本文标题:AngularJS1.*指令体系

      本文链接:https://www.haomeiwen.com/subject/llcbmxtx.html