指令

什么是指令

  • 可以利用指令来扩展HTML标签,增加声明式语法来实现想做的任何事,可以对应用有特殊意义的元素和属性来替换一般的HTML标签

  • angular也内置了非常多的指令,ng-app、ng-controller

指令和HTML校验

  • angular 内置指令的语法,已ng开始,代表angular命名空间,连接符后面的内容代表指令的名称

  • 指令的语法在很多HTML校验规则中是不合法的,Angular提供了多种调用指令方法,可以顺利通过不同校验的规则

校验器

格式

示例

none

namespace-name

ng-bind

XML

namespace:name

ng:bind

HTML5

data-namespace-name

data-ng-bind

XHTML

x-namespace-name

x-ng-bind

指令的执行过程

  • 浏览器得到 HTML 字符串内容,解析得到 DOM 结构。

  • ng 引入,把 DOM 结构扔给 $compile 函数处理:

  • 找出 DOM 结构中有变量占位符

  • 匹配找出 DOM 中包含的所有指令引⽤用

  • 把指令关联到 DOM

  • 关联到 DOM 的多个指令按权重排列

  • 执行指令中的 compile 函数(改变 DOM 结构,返回 link 函数)

  • 得到的所有 link 函数组成⼀一个列表作为 $compile 函数的返回

  • 执行 link 函数(连接模板的 scope)。

Last updated