Как вложить ng-view внутри ng-include? - программирование
Подтвердить что ты не робот

Как вложить ng-view внутри ng-include?

При попытке добавить ng-view внутри ng-include ничего не происходит. например в следующем коде, когда темы /midnight/index.html содержат ng-view, рендеринг не отображается:

<ng-include src="'themes/midnight/index.html'"></ng-include>

Однако, если я использую приведенный ниже код, представление отображается дважды:

<ng-include src="'themes/midnight/index.html'"></ng-include>
<div ng-view></div>

В чем проблема и как ее разрешить?

4b9b3361

Ответ 1

Эта проблема возникает из-за задержки создания ng-view (проходящей через ng-include). В этом случае экземпляр $route также задерживается, а $route пропускает событие изменения местоположения (и маршрутизация вообще не будет выполняться).

Чтобы обойти это, вызовите функцию обновления $route при инициализации приложения:

yourApp.run(['$route', function($route)  {
  $route.reload();
}]);

Кроме того, достаточно включить только $route в зависимость. Это тоже будет работать:

yourApp.run(['$route', angular.noop]);

Источник: связанная проблема на github.


Также проверьте ui-router, который предназначен специально для решения проблемы вложенных представлений.