父指令通过templateUrl在子指令之前进行编译,发布和发布

时间:2014-08-31 22:47:26

标签: angularjs angularjs-directive

所以我有2个指令,让我们调用它们输入并自动完成。

auto complete指令使用templateUrl加载远程模板,它包含一个输入。自动完成应该能够放在输入指令中。现在我遇到的问题是输入指令正在编译并在编译自动完成之前执行它的链接功能。这是一个问题,因为输入指令假定在运行链接函数时有一个输入元素,并且由于链接函数在编译自动完成指令并注入DOM之前运行,因此输入指令未找到输入元素。

我必须相信编译,预处理和后期链接功能的顺序不能通过远程加载模板来维护,因为它具有异步性质。

这是一个不使用任何模板的plunker:

http://plnkr.co/edit/gEk3GjuASxrV1L6Kp6Dq?p=preview

编译,预连接和后连接功能按我期望的顺序排列。然后我尝试相同的事情,但我logCompile2指令有一个template属性:

http://plnkr.co/edit/EOYgf5z82mesixcb1LXU?p=preview

同样,编译,前置和后置链接功能按我期望的顺序排列。最后,我们正确地使用logCompile2指令和templateUrl,远程加载模板:

http://plnkr.co/edit/A55sw6YRCuhvWUi6zQ4Q?p=preview

现在事情没有按预期工作,根父指令现在在为子指令执行任何步骤之前完成所有步骤。我可以在这个版本和另外两个版本之间看到的唯一区别是模板是远程加载的(我假设是以异步方式)。

无论如何都要让父指令等待所有子指令在运行父链接函数之前编译和注入DOM而不必内联模板?

1 个答案:

答案 0 :(得分:0)

显然这是按预期运作的(您可以从此评论开始并阅读):

https://github.com/angular/angular.js/issues/8877#issuecomment-54129804