UI-Routerとネストされたビューを使用して、anglejsで構築された単一ページのアプリケーションがあります。私のコードは次のようになります:角度UIルータ、ネストされたビューを解決する
app.config(['$stateProvider', '$urlRouterProvider', '$httpProvider' ,'$mdDateLocaleProvider', '$locationProvider', function ($stateProvider, $urlRouterProvider, $httpProvider, $mdDateLocaleProvider, $locationProvider) {
var rootpath = config.paths.components;
$stateProvider.state('home', {
url: '/',
views: {
index: {
templateUrl: rootpath + '_root/template.html',
controller: "RootController"
},
"[email protected]": {
templateUrl: rootpath + 'header/header-template.html',
controller: "HeaderController"
},
"[email protected]": {
templateUrl: rootpath + 'sidebar/sidebar-template.html',
controller: "SidebarController"
},
"[email protected]": {
templateUrl: rootpath + 'main/main-template.html',
controller: "MainController"
}
},
resolve: {
authorize: ['RootService', function (RootService) {
var auth = RootService.getKey();
return RootService.getConfig(auth.key);
}]
},
});
$urlRouterProvider.otherwise('/');
}]).run(['$rootScope', '$state', '$window', function($rootScope, $state, $window){
$rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error){
$window.location = error.status +'.html';
});
"home"状態では、渡された認証キーが有効かどうかを確認しています。
キーが無効または期限切れの場合、$stateChangeError
イベントはエラーをキャッチし、ユーザーをエラーページにリダイレクトします。
これは、アプリケーションの起動時および更新時に正常に機能します。
キーが期限切れ(10分間有効)でアプリケーションが再フォーマットされないと、 $stateChangeError
イベントがエラーメッセージをキャッチしないという問題があります。
これを修正する方法についてのご意見はありますか?
...これはあなたの問題を解決するかもしれないと思う。HTML '; – atul