angularjs中的编译和链接函数之间的区别是什么
有人能用简单的话解释吗?
文档似乎有点钝。我没有得到的精华和大图片什么时候使用一个在另一个。一个例子对比两个将是真棒。
>编译函数 – 用于模板DOM操作(即操纵tElement =模板元素),因此适用于与指令相关联的模板的所有DOM克隆的操作。
>链接函数 – 用于注册DOM侦听器(即实例范围上的$ watch表达式)以及实例DOM操作(即操纵iElement =单个实例元素)。它在克隆了模板之后执行。例如,在 注意,DOM变换可以在编译函数和/或链接函数中完成。 大多数指令只需要一个链接函数,因为大多数指令只处理一个特定的DOM元素实例(及其实例范围)。 一种帮助确定使用哪种方法:考虑编译函数不接收作用域参数。 (我故意忽略transclude链接函数参数,它接收一个转录作用域 – 这是rarely使用)因此,编译函数不能做任何你想做的,需要一个(实例)作用域 – 你可以’t $观察任何模型/实例范围属性,你不能操作DOM使用实例范围信息,你不能调用在实例范围上定义的函数等。 但是,编译函数(如链接函数)可以访问属性。所以如果你的DOM操作不需要实例范围,你可以使用一个编译函数。这里的an example指令,只使用一个编译函数,因为这些原因。它检查属性,但它不需要一个实例作用域来完成它的工作。 这里是一个指令,也只使用一个编译函数的an example。该伪指令只需要转换模板DOM,因此可以使用编译函数。 另一种方法来帮助确定使用:如果你不使用链接功能中的“element”参数,那么你可能不需要链接功能。 由于大多数指令都有链接功能,我不会提供任何例子 – 它们应该很容易找到。 注意,如果你需要一个编译函数和一个链接函数(或前后链接函数),编译函数必须返回链接函数,因为’link’属性被忽略,如果’compile’属性被定义。 也可以看看 > Difference between the ‘controller’,‘link’ and ‘compile’ functions when defining a directive (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- angularjs – 禁止在查询参数更改时重新加载基于ui-router的
- shell – 如何#! shebang工作?
- UNIX网络编程(unp)源码下载和编译
- angularjs – Angular HttpPromise:`success` /`error`方法
- 检测是否为angularjs指令提供了转录内容
- 在AngularJS中通过多个特定模型属性过滤(在OR关系中)
- Angular 2:在创建组件时动态插入捕获元素(动态)
- bash – 检查命令错误是否包含子字符串
- bash – 如何确定给定范围内的哪些IP具有使用nmap的端口80?
- 在Scala Cats中使用带有Free Monads的任意树