嵌套角度指令与`template`与`templateUrl`

时间:2015-07-13 20:42:45

标签: javascript angularjs angularjs-directive

我有一个'helper'指令,允许我轻松访问父指令中的子DOM元素。但是,当我将这个helper指令与另一个指令结合使用时,我遇到了一个问题。如果我在指令中使用template,一切正常。但是,如果我使用templateUrl我得到一个错误,说明辅助指令保存到范围的元素是未定义的。

有点难以解释,但这里是傻瓜: http://plnkr.co/edit/NHKBGfro7Xe3dSalq5bt?p=preview

注意:我添加了一个在5秒后触发的setTimeout,这允许templateUrl指令起作用,因为它现在可以在父指令的范围内使用。

1 个答案:

答案 0 :(得分:4)

这是预期的行为。

  

angularjs $compile

     

后连接功能   链接子元素后执行。

     

请注意,包含templateUrl指令的子元素将不会被编译和链接,因为它们正在等待其模板异步加载,并且它们自己的编译和链接已暂停,直到发生这种情况。

     

在不等待解析异步模板的元素的后连接函数中进行DOM转换是安全的。

Related Github Issue