更改 ng 包含或定义默认 ui 视图

change ng include or define default ui view

我有一个 angular 网络应用程序,我想要一个 header 用于主页,而另一个用于所有其他页面。我目前的 html 结构是

<html>
<body>
<ng-include="header.html">
<div data-ng-include="'header.html'"></div>
<section data-ui-view></section>
<div data-ng-include="'footer.html'"></div>
</body>
</html>

当页面是主页时,我想包含 header-home.html。我尝试在 headerController 中编写 include 的路径,并根据 $location.path() 分配适当的值。但它只会在页面加载时 运行 一次。当 ui-view 改变时它不会 运行。我知道我可以使用 ui-view 在一个状态下分配不同的视图,但是如果我想在所有视图中为 header 添加一个新视图,我有很多路由并且需要更改很多配置文件。

有什么方法可以包含 app.run 中的适当 header 以便它会根据路线或 运行 每次路线时的 header 控制器而改变如果未指定,则更改状态或将默认视图分配给状态。?

app.run 中侦听状态更改事件并根据状态更改在 $rootScope 中设置标志。

在你的HTML中:

基于标志使用 ng-if 并包含不同的 header 模板。