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() {}); を使用して login-changed-event をリッスンします。

これで、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 に答える