AngularJS - 处理重复的片段,如页眉和页脚 [英] AngularJS - Handle repeated fragments like Header and Footer
问题描述
我一直在尝试在 Angular JS 应用程序中实现页眉/页脚.我正在考虑将这些作为 ng-include 添加到主 index.html 中.但是,如果页眉和页脚是静态页面,这将起作用.我的情况略有不同......在登录页面中没有显示页眉/页脚.其他页面根据您是否登录,您必须显示欢迎用户[注销]"或欢迎访客[登录]".
我将登录信息保存在 rootScope 中,并在登录时设置了一个布尔值 $rootScope.isLoggedIn.最大的问题似乎是整个 ng-include 在注销时没有刷新.因此,带有 ng-show hide 指令的 div 不会在更改时隐藏/显示.有人建议使用 ng-switch - 它的行为也相同.
如果我将标题代码移动到各个视图中,则一切正常.
这里有一个类似的问题:在 angularjs 中刷新标题页
按照 ivarni 的建议,在页眉/页脚中使用控制器.来自我自己的(实验性)应用的示例:
在 index.html 中,header 会显示动态生成的菜单、登录/注销等:
<div id="navbar" class="navbar navbar-inverse navbar-fixed-top"x-ng-controller="NavbarCtrl" x-ng-include="'app/main/navbar.html'"></div>
NavbarCtrl
为 app/main/navbar.html
模板构建适当的范围.模板如下(考虑到您的需求 - 并删除不相关的细节):
<div x-ng-if="userData.loggedIn">欢迎{{userData.userName}}!<a x-ng-click="logout()">注销</a>
<div x-ng-if="!userData.loggedIn"><a x-ng-click="login()">登录</a>