我必须在登录angularjs后刷新header.html。调用Login时,将刷新整个页面并初始化标头,但在登录后只加载内容而不是标题。我该怎么做才能刷新标题。
<div class="container-holder" ng-controller="mainCtrl">
<div class="container">
<div ng-include src='"elements/header.html"'></div>
<div ng-view class="clearfix"></div>
</div>
</div>
我必须刷新header.html。
答案 0 :(得分:1)
在我开始使用AngularJS的几天里,我一直在努力。仅适用于新手...如果您的页眉/页脚位于应用视图之外,则路线更改时不会刷新。您必须在header / footer指令中添加显式事件侦听。基本上你使用rootScope监听login-changed-event。$ on('login-chnaged-event',function(){});
在此,您必须设置范围变量,如isLoggedIn或loggedInUser信息。登录状态发生变化时,您的登录服务应触发login-changed-event。这是由指令监听的,该指令更新了header指令的范围变量......最终将重新呈现标题。
答案 1 :(得分:0)
如果您想更改标题模板,可以使用ng-switch,即:
<div ng-switch on="login">
<div ng-switch-when="true">Logged in!</div>
<div ng-switch-default>Not Logged in</div>
</div>
并且在您的控制器中,您只需要切换一个名为$ scope.login
的布尔变量