我有一个指令,在连接函数中操纵Dom。在它内部的另一个指令,我需要它的链接功能,在父指令完成其Dom操作后触发。例如,我将属性赋给了父链接函数中的作用域,但是在子指令中作用域没有这些属性(作用域不是孤立的,我需要修改链接函数中的作用域,以便访问该元素)指令中的指令链接函数同步
0
A
回答
1
对于指令,link
(与post-link
相同)的执行顺序相反。这意味着对于以下情况:
<span l1-dir><span l2-dir></span></span>
首先调用子指令的链接函数,然后调用父指令链接。我们很幸运,因为我们也有pre-link
函数,它按照指令定义的顺序调用。
在我们的例子中,第一个指令的pre-link
函数被调用,然后是第二个函数的pre-link
函数。
您可以在pre-link
功能从父指令移动DOM操作逻辑(先分成pre
和post
):
return {
restrict: 'A',
compile: function compile(tElement, tAttrs, transclude) {
return {
pre: function preLink(scope, iElement, iAttrs, controller) { //parent directive logic for DOM manipulation
},
post: //nothing
}
}
这保证了孩子的post-link
部分从父指示你的DOM操作指令将完成。
0
只是一个$超时结束后,以0在你的“家长”指令添加到NG-如果您的孩子的指令,并将其设置为true,像这样:
/*above should be placed all your parent directive link function code... the $timeout should be
executed after your parent directive code*/
$timeout(function(){
showChildDirective = "true";
}, 0);
这样,你将执行你的父指令的所有任务($超时将被放置在链接函数的底部),并且你将能够等待下一个$ digest循环完成, 所以你所有的绑定到DOM将比较勒特。
相关问题
- 1. 如何从子指令的链接函数调用父指令链接函数
- 2. 在angularjs指令中的链接指令
- 3. Angular指令链接函数onload
- 4. Angularjs指令链接
- 5. 角度同步指令?
- 6. 在另一个指令的链接功能中添加指令
- 7. 指令中的重新连接指令
- 8. 混淆了angularjs指令的链接函数中的属性
- 9. 指令AngularJs中的链接函数的访问范围?
- 10. anglarjs指令链接函数不从编译函数调用
- 11. 指令中的异步HostBinding
- 12. 在父指令中触发子指令中的函数[angularJS]
- 13. 为什么不能在指令的链接函数中编译?
- 14. ng-init不能在指令的链接函数中工作吗?
- 15. AngularJS 1.3指令链接函数中的$ get.Constructor {}如何?
- 16. ng-controller变量在指令的链接函数中不可见
- 17. 在指令链接函数中使用$ mdDialog的AngularJS材质
- 18. 如何在角度指令的链接函数中通过$ filter
- 19. 指令中的指令
- 20. 指令中的指令
- 21. 数据指令中的MIPS指令
- 22. 将函数发送到指令中的指令
- 23. 从子指令调用父指令中的函数
- 24. 在指令链接函数中测试$ resource.get params
- 25. Angular js:element.val在指令链接函数中不起作用
- 26. 如何在指令链接函数中单元测试Angular routeChangeSuccess?
- 27. Angular自定义指令链接函数不会接受'restrict'
- 28. 是否使用了指令的链接函数的返回值?
- 29. 重写指令的链接函数的一些部分
- 30. AngularJS指令 - 多重指令同名
这适用于我。谢谢。 –