0

http://www.breezejs.com/samples/breezeangular-templateにある Breeze Angular SPA テンプレートを使用して、ユーザー認証後に変更されるメニューを更新しようとしています。

私の例は、Login ビューと Register ビューをモーダル ウィンドウに移動したという点で、既定のテンプレートとは少し異なります。ログインに成功した後にモーダルが閉じると、完全なページの更新が行われないため、MVC ビュー (Angular ビューではない) にあるメニューは更新されません。

SPA テンプレートでは、SPA に入る前に認証が必要です。その後、ハード リダイレクト/リフレッシュが発生し、SPA がロードされます。私の場合、認証前に SPA でビュー/ページを閲覧している可能性があります。

MVC ビュー コード スニペット (Views/Home/Index.cshtml)

...
<li>
@if (@User.Identity.IsAuthenticated)
{
    User Logged In: @User.Identity.Name
}     
else
{
    User Logged In: Annon
}
</li></ul>

<div ng-app="app">
    <div ng-view></div>
</div>
....

ルート リダイレクトを実行しました。ログイン後、json.redirect が「/」に設定されている場合、ページがハード リフレッシュされます。ただし、現在のページ、つまり「#/about」に設定されている場合、Angular はルーティングを処理するため、ハード リフレッシュは発生せず、メニューは更新されません。

Ajax ログイン コード スニペット (App/ajaxlogin.js)

... part of login/register function
if (json.success) {
    window.location = json.redirect || location.href;
} else if (json.errors) {
    displayErrors($form, json.errors);
}
...

現在のセットアップを使用してこれを行うことは可能ですか? または、メニューを SPA 内のどこかに移動し、表示するメニューを決定するために Angular を使用する必要がありますか? 後者の場合、これを行う最善の方法の方向性は? 私はAngularとBreezeの両方に不慣れです。

4

1 に答える 1