Uso un modello che genera un layout di scheda Bootstrap. Come di seguito:AngularJS: Esiste un modo migliore per raggiungere questo rispetto a quello specificato?
<div class="a">
<ul class="nav nav-bar nav-stacked" role="tabs">
<li><a href="#home"></a></li>
...
</ul>
<div class="tab-content">
<div id="home">abc</div>
...
</div>
</div>
Ora, questo è abbastanza semplice e lineare la navigazione a schede che possono essere hardcoded e ha raggiunto.
Ho un ng-repeat
dinamico su ul's
li
e il contenuto della scheda div
s.
Il JSON che ottengo dal servizio REST è qualcosa che contiene i dati per le schede e il contenuto da visualizzare all'interno del contenuto della scheda all'interno di un singolo oggetto. Ad esempio:
{
"0": "a": [{ // a- tab data
"0": "abc", // abc - data to be displayed inside the tab-content
"1": "xyz"
}]
...
}
Con tale gerarchia JSON, ho praticamente bisogno di ng-repeat due volte. Una volta per il ul li
e una volta per il contenuto della scheda poiché ogni oggetto della scheda contiene i dati ad esso relativi.
Quindi quello che ho fatto finora è:
<div class="a">
<ul class="nav nav-bar nav-stacked" role="tabs">
<li ng-repeat="foo in data"><a href="#home">{{foo.name}}</a></li>
...
</ul>
<div class="tab-content">
<div id="home" ng-repeat="foo in data">
<p ng-repeat="f in foo.desc">{{f}}</p>
</div>
...
</div>
</div>
EDIT: Quindi la mia domanda è: esiste un modo più intelligente per raggiungere questo obiettivo utilizzando un unico ng-repeat
piuttosto che fare "foo nei dati" due volte?
Scusa se la mia domanda non è chiara.
si fa a non sufficiente assegnare due volte dopo la chiamata JSON? Nel tuo controller: '$ scope.data = response; $ scope.data2 = response; 'e la seconda ng-repeat sarebbe' foo in data2' - non l'ideale ma un'opzione? –