Ho la seguente configurazione:Toggle visibilità di un ng-includere, a seconda rotta
$routeProvider
.when('/cars', { templateUrl: 'app/cars/index.html', controller: 'CarsCtrl', reloadOnSearch: false })
.when('/bikes', { templateUrl: 'app/bikes/index.html', controller: 'BikesCtrl', reloadOnSearch: false });
e da qualche parte nel mio radice index.html v'è una:
<a href="#/cars">Cars</a>
<a href="#/bikes">Bikes</a>
<div ng-view></div>
Ora, voglio che sia le viste caricate e generate nel DOM allo stesso tempo e ne mostrano una a seconda del percorso/URL.
Qualcosa come il seguente (codice di lavoro non effettivo, solo per darti un'idea).
app.js:
$routeProvider
.when('/cars', { controller: 'CarsCtrl', reloadOnSearch: false })
.when('/bikes', { controller: 'BikesCtrl', reloadOnSearch: false });
radice index.html:
<a href="#/cars">Cars</a>
<a href="#/bikes">Bikes</a>
<div ng-include="'app/cars/index.html'" ng-show="carsVisible"></div>
<div ng-include="'app/bikes/index.html'" ng-show="bikesVisible"></div>
UPDATE: so che ng-view tipo di fa questo, ma la differenza, se sottile, esiste . Voglio che l'html di ogni vista sia generato una volta e rimanga nel DOM in ogni momento.
Non è possibile eseguire questa operazione con ng-view. Ma la domanda è, perché vorresti davvero farlo. È perché vorresti "pre-processare" ogni percorso in modo che si carichi più velocemente? Il routing è già piuttosto veloce, a meno che i controller non richiedano dati asincroni, nel qual caso si utilizzerebbe la 'risoluzione' all'interno dell'oggetto di definizione del percorso, oltre a qualche codice di inizializzazione dell'app per il recupero dei dati asincroni in background. – Stewie