Я следующая конфигурация:Переключить видимость в нг-включает в зависимости от маршрута
$routeProvider
.when('/cars', { templateUrl: 'app/cars/index.html', controller: 'CarsCtrl', reloadOnSearch: false })
.when('/bikes', { templateUrl: 'app/bikes/index.html', controller: 'BikesCtrl', reloadOnSearch: false });
и где-то в моем корне index.html есть:
<a href="#/cars">Cars</a>
<a href="#/bikes">Bikes</a>
<div ng-view></div>
Теперь я хочу, как views загружен и сгенерирован в DOM одновременно и покажет один из них в зависимости от маршрута/URL.
Что-то вроде следующего (не фактический рабочий код, просто чтобы дать вам представление).
app.js:
$routeProvider
.when('/cars', { controller: 'CarsCtrl', reloadOnSearch: false })
.when('/bikes', { controller: 'BikesCtrl', reloadOnSearch: false });
корень 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: Я знаю, что нг-вид рода делает это, но разница, если тонкий, существует , Я хочу, чтобы html каждого представления был создан один раз и всегда находился в DOM.
Это невозможно сделать с помощью ng-view. Но вопрос в том, почему вы действительно хотите это сделать. Это потому, что вы хотите «предварительно обработать» каждый маршрут, чтобы он загружался быстрее? Маршрутизация уже довольно быстрая, если только вашим контроллерам не нужны некоторые данные асинхронного ввода, и в этом случае вы должны использовать «разрешение» внутри объекта определения маршрута, а также код инициализации приложения для извлечения данных асинхронного ввода в фоновом режиме. – Stewie