2

在angularjs中登录后我必须刷新header.html。调用登录时,整个页面被刷新并初始化标题,但登录后只加载内容而不是标题。我该怎么做才能刷新标题。

索引.html

<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。

4

2 回答 2

1

当我开始使用 AngularJS 时,我为此苦苦挣扎了好几天。仅适用于新手...如果您的页眉/页脚位于应用程序视图之外,则不会在路线更改时刷新。您必须在页眉/页脚指令中添加显式事件侦听。基本上,您使用 rootScope.$on('login-chnaged-event', function() {}); 监听登录更改事件。

在此您必须设置范围变量,例如 isLoggedIn 或 loggedInUser 信息。只要登录状态发生变化,您的登录服务就应该触发 login-changed-event。这是由更新标头指令的范围变量的指令监听的......最终将重新呈现标头。

于 2014-06-26T08:17:36.353 回答
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 的布尔变量

于 2013-10-01T22:49:56.027 回答