我有一個帶有2個對象模型model1的表單控制器:{name:「foo」} model2:{name:「model2」} 我創建了2個指令隔離範圍)。一個使用model1的Element only綁定,另一個使用僅使用model2的Attribute only綁定。Angularjs將2個指令作用域模型綁定到父控制器模型
的嵌套像這樣:
<div myattibute="model2">
<mytag my-model="model"></mytag>
</div>
的屬性只指令不具有模板和標籤指令有一個模板。
問題是我在模型的mytag指令中出現undefined。
。有人看到問題並在plnkr中解釋它嗎?
http://plnkr.co/edit/Q23XqY?p=preview
部分解決: 與該myattribute指令使得它的工作只NG-transclude添加一個空的DIV模板的工作的例子。隨着我授權該屬性指令是在一個div它,我會希望它能夠在任何可放置的div,跨度等 這裏是工作示例: http://plnkr.co/edit/z0M5ys?p=preview
。如何爲NG-transclude影響範圍繼承?
。無法用沒有標記的業務邏輯創建此屬性嗎?
有趣的一點。我試圖實現的是分層組件。例如,一個組件只能包含其中的其他組件的佈局信息,而屬性則用於額外的業務UI邏輯而無需演示。你認爲你的模型適合嗎? (因爲你可以看到,即使在一個簡單的例子中,我遇到了'='綁定的一些問題) –
絕對不需要隔離作用域。 Angular核心幾乎從不在任何地方使用它們。不是說你永遠不會想要他們,但通常沒有必要。看看指令控制器是如何工作的。你可以有一個根控制器,你的「子」指令也可以有一個引用,並與根交互。 ngForm和ngModel指令可以做到這一點。 –
哦,你也應該考慮你的指令*通常應該主要是表示邏輯,業務邏輯應該存在於服務中。當然,指令可以自由使用這些服務。 –