Sto tentando di visualizzare dinamicamente uno dei diversi modelli all'interno di una direttiva ng-repeat, in base all'elemento corrente.Visualizzazione dinamica del modello nella direttiva ng-repeat in AngularJS?
miei dati JSON è simile al seguente:
data: {
groups: [
{
name: "Group 1",
sections: [
{ name: "Section A" },
{ name: "Section B" }
]
},
{
name: "Group 2",
sections: [
{ name: "Section A" },
{ name: "Section B" }
]
}
]
}
Il mio obiettivo è quello di rendere l'albero dei dati in modo dinamico, con ogni gruppo che contiene più sezioni. I gruppi avranno tutti lo stesso modello, ma ogni sezione dovrebbe avere il proprio modello, basato sul campo del nome.
Supponendo HTML livello superiore è:
<div ng-repeat="group in groups">
{{ group.name }}
<div ng-repeat="section in sections">
<!-- Dynamic section template used -->
</div>
</div>
Idealmente, ogni sezione sarebbe anche necessario avere i propri dati con ambito e controllore associato con esso. Ho avuto la fortuna di costruire questo tipo di sistema con Knockout ma sto cercando di capire il modo angolare di fare le cose.
Sembra un buon caso per una direttiva. – lucuma
Lucuma, puoi commentare di più? Ho pensato di utilizzare anche le direttive, ma non sono sicuro del livello ideale di granularità. Dovrei costruire una direttiva che faccia solo la selezione dei template, o ogni "sezione" debba avere la propria direttiva? –
Penso che dipenda da come lo vuoi fare. È possibile creare una direttiva per eseguirla tutte (passare nell'array dei gruppi) e/o è possibile creare un'altra direttiva chiamata all'interno della direttiva dei gruppi per gestire le sezioni. Il vantaggio di una direttiva è che ottengono il loro scopo. Fornirò un piccolo esempio. – lucuma