AngularJS:如何在子指令之前编译使用transclusion的父指令?

时间:2013-08-26 14:07:41

标签: javascript angularjs

我有以下结构:

<dad-dir>
  <kid-dir></bar-dir>
  <kid-dir></bar-dir>
</dad-dir>

这里,dadDir是父指令,kidDir是子指令。在dadDir中,transclude设置为true。输出看起来像这样:

<div class='dad-dir'>
  <span class='kid-dir'>Kid directive output</span>
  <span class='kid-dir'>Kid directive output</span>
</div>

我遇到的问题是kidDir正在dadDir之前编译/链接。这是一个问题,因为我希望dadDir设置我希望kidDir继承的某些属性。我在console.loglink的{​​{1}}个函数中都有一个dadDir行,kidDir中的kidDir之前的行记录dadDir

我尝试更改优先级,将dadDir的优先级设置为10,将kidDir设置为1,但它没有效果。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我相信这是我以前使用的angularjs版本1.0.5中的一个错误。我刚刚升级到1.2,神奇地require: '^dadDir来自kidDir

答案 1 :(得分:0)

你是否试图转换为母元素?

fooDir指令中的

transclude: true
replace: true
template: "<div ng-transclude></div>"

在孩子之后 barDir指令

require: '^fooDir'