AngularJS - 处理重复的片段,如页眉和页脚
AngularJS - Handle repeated fragments like Header and Footer
我一直在尝试在Angular JS应用程序中实现页眉/页脚。我正在考虑将这些作为 ng-include 添加到主索引中.html。但是,如果页眉和页脚是静态页面,这将起作用。我的情况略有不同...在登录页面中,不显示页眉/页脚。其他页面取决于您是否登录,您必须显示"欢迎用户[注销]"或"欢迎访客[登录]"。
我将登录信息保存在rootScope中,并在登录时设置了一个布尔值$rootScope.isLoggedIn。最大的问题似乎是整个 ng-include 在注销时没有刷新。因此,带有 ng-show 隐藏指令的div 不会在更改时隐藏/显示。有人建议使用 ng-switch - 它的行为方式也相同。
如果我在单个视图中移动标题代码,那么一切都很好。
这里有一个类似的问题:在angularjs中刷新标题页面
按照 ivarni 的建议,在页眉/页脚中使用控制器。我自己的(实验性(应用程序的示例:
在索引.html中,标题将显示动态生成的菜单,登录/注销等:
<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 class="navbar-inner" x-ng-if="showHeader">
<div class="container">
<div>
<ul class="nav">
<li x-ng-repeat="menuEntry in menuEntries">
<a x-ng-href="#{{menuEntry.path}}">{{menuEntry.display}}</a>
</li>
</ul>
</div>
</div>
<div x-ng-if="userData.loggedIn">
Wellcome {{userData.userName}}!
<a x-ng-click="logout()">Logout</a>
</div>
<div x-ng-if="!userData.loggedIn">
<a x-ng-click="login()">Login</a>
</div>
</div>
因此,根据showHeader
范围变量,整个标记都是隐藏的。它动态创建菜单(menuEntries
(。并根据userData.loggedIn
,相应的登录/注销消息。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- keyup事件处理程序更改焦点不适用于快速键入
- 如何使用jquery处理php循环通过元素
- angular.js没有'无法在PhoneGap中处理视图标记
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 提示使用服务器端事件处理程序激活JavaScript
- javascript:如何在antlr生成的Lexer中进行错误处理
- 如何编写一个具有公共标头的批处理
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 如何处理node.js节点mongodb中的连接和查询队列
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 如何处理10页以上的静态页眉/页脚
- 将事件处理程序绑定到任何可能的事件
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- URL 中的 PHP 处理片段标识符
- AngularJS - 处理重复的片段,如页眉和页脚
- 在IE中处理XSL片段
- 获取JSON并处理JSON中的单个信息片段
- 使用JavaScript处理哈希片段
- 使用 javascript 在点击时处理 URL 的片段