簡體   English   中英

AngularJS:如何在子指令之前編譯使用包含的父指令?

[英]AngularJS: How to make parent directive using transclusion be compiled before the child directive?

我有以下結構:

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

在這里, dadDir是父指令,而kidDir是子指令。 dadDirtransclude設置為true。 輸出看起來像這樣:

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

我遇到的問題是, kidDirdadDir之前被編譯/鏈接。 這是一個問題,因為我希望dadDir設置我希望kidDir繼承的某些屬性。 我有一個console.log在線路link兩者的功能dadDirkidDir並在那些kidDir之前登錄dadDir的。

我試圖改變優先級,設置dadDir的優先級為10, kidDir的1,但它沒有任何效果。

有任何想法嗎?

我相信這是我先前使用的angularjs 1.0.5版中的錯誤。 我剛剛升級到1.2,魔術般地require: '^dadDir kidDir工作中的require: '^dadDir '。

您是否嘗試過包含母元素?

在fooDir指令中:

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

然后在子欄目中

require: '^fooDir'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM