我試圖根據當前項目動態顯示ng-repeat指令中的幾個模板之一。在AngularJS中動態顯示ng-repeat指令中的模板?
我的JSON數據是這樣的:
data: {
groups: [
{
name: "Group 1",
sections: [
{ name: "Section A" },
{ name: "Section B" }
]
},
{
name: "Group 2",
sections: [
{ name: "Section A" },
{ name: "Section B" }
]
}
]
}
我的目標是動態地呈現數據的樹,包含多個部分,每組。這些組將具有相同的模板,但每個部分都應該有自己的模板,基於名稱字段。
假設頂層HTML是:
<div ng-repeat="group in groups">
{{ group.name }}
<div ng-repeat="section in sections">
<!-- Dynamic section template used -->
</div>
</div>
理想的情況下,每一部分也需要有自己的作用域的數據和與之相關的控制器。我用Knockout構建這種類型的系統已經有了很好的運氣,但我試圖理解Angular的做事方式。
聽起來就像一個指令的好例子。 – lucuma 2013-04-22 19:56:34
Lucuma,你能評論更多嗎?我也想過使用指令,但我不確定理想的粒度級別。我應該建立一個指令,只是選擇模板,還是每個「部分」都有自己的指令? – 2013-04-23 12:17:55
我認爲這取決於你想怎麼做。您可以創建一個指令來完成所有操作(傳入組數組),並且/或者您可以創建另一個在您的groups指令中調用的指令來處理這些部分。指令的好處是他們有自己的範圍。我將提供一個小例子。 – lucuma 2013-04-23 13:19:44