指令
什么是指令
可以利用指令来扩展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