如何在ng-include中嵌套ng-view?

时间:2013-05-21 15:53:07

标签: angularjs angularjs-ng-include ng-view

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

问题是什么?如何解决?

1 个答案:

答案 0 :(得分:30)

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

要绕过此操作,请在应用程序初始化时调用$route更新函数:

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

此外,仅包含$route作为依赖关系就足够了。这也可行:

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

来源:相关的issue on github


另请查看 ui-router ,其目的是专门处理嵌套视图问题。