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の両方に不慣れです。