我有一個嵌套在指令中的指令。爲了滿足我們的設計者需求,我要求內容成爲DOM節點的直接子節點。
<div>
<my-directive style="color: blue;">
<p>Name: {{ ctl_a.fname }} {{ ctl_a.sname }}</p>
<p>External Test: {{ xternal }}</p>
<div>
<nested-directive incoming="ctl_a.a_counter"></nested-directive>
</div>
</my-directive>
</div>
什麼是我的最佳選擇,讓這個正確加載? I.E「my-directive」可以訪問ctl_a.fname,而「嵌套指令」可以訪問$ scope.incoming,作爲由「ctl_a.a_counter」傳入的參數。
Here is a plunk演示了我正在運行的使用$ compile的問題。如果我使用$ compile,則嵌套指令執行兩次。一次用於外部指令編譯方法,並再次用於手動指令。更糟糕的是手動的是唯一一個看起來正確渲染內容的人。
如果我使用ng-transclude
,那麼沒有任何屬性傳遞給內部指令,因爲沒有用$$ prevSibling或$ parent作爲前綴,因爲ng-transclude似乎會創建一個新的作用域。這似乎是根本錯誤的,必須像這樣引用它。
編輯:這是another plunk其中第一個分叉。這次我演示了ng-transclude以及我需要如何使用$ parent來訪問控制器的指令。
謝謝。
那麼,爲什麼你讓Angular編譯內容,如果你最終自己編譯它?另外我不確定你的實際問題是什麼。 – zeroflagL
_什麼是我的最佳選擇,以正確加載?_如何,我如何有角度處理此標記,以便模板變量在其包含指令的上下文中進行評估。因爲角度不會像目前這樣編譯這些。 –