18

尝试在ng-view内部添加ng-include时,没有任何反应。例如,在下面的代码中,当theme/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>

有什么问题,我该如何解决?

4

1 回答 1

30

ng-view由于(通过)的延迟实例化而发生此问题ng-include。在这种情况下,$route实例化也会延迟,并且$route会错过位置更改事件(并且根本不会执行路由)。

要绕过这一点,请$route在应用程序初始化时调用更新函数:

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

此外,仅包含$route作为依赖项就足够了。这也将起作用:

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

来源:github 上的相关问题。


另请查看ui-router,它旨在专门处理嵌套视图的问题。

于 2013-11-30T20:39:03.957 回答