Ben*_*ado 9 angularjs angularjs-directive
我有一个奇怪的情况.如果我有一个包含2个指令的外部指令
inner-directive1 - 定义了一个模板.
inner-directive2 - 定义了templateUrl.
内部指令1 postLink函数在外部指令postLink函数之前被调用 - 正如预期的那样.
但是,inner-directive2 poslink函数是在外部指令postLink之后调用的 - 不是预期的.
对postLink函数的调用是:inner-directive1,outer-directive,inner-directive2,我期待:inner-directive1,inner-directive2,outer-directive.
外部指令的模板是:
<div ng-transclude><div inner1></div><div inner2></div></div>
Run Code Online (Sandbox Code Playgroud)
请看看JsFiddle
有谁知道原因?有没有一种方法可以让它按预期工作?
JSFiddle - 请查看控制台日志.谢谢,本
Kay*_*ave 10
这就是为什么,从Angular指令docs(http://docs.angularjs.org/guide/directive):
templateUrl - 与模板相同,但模板是从指定的URL加载的.由于模板加载是异步的,因此编译/链接将暂停,直到加载模板为止.
因此,在加载模板之前,特定指令会停止链接.在此期间,您的其他指令会跳入并运行.
如果链接功能的时间关键,则需要直接包含模板而不是templateUrl.除非有人能想出一个很酷的方法.