角度設定内で解決方法があります。それは不正なアクセスからビューを保護するために書かれています。問題は、別のルートファイルを作成すると、各ファイルに同じ解決方法をコピーする必要があることです。私はそれを一度書くことができ、それをどこでも使うことができるように、他の方法はありますか?グローバルに使用するリファクタリング角度ui-routerリゾルバ
(function(){
'use strict';
var app = angular.module('app');
app.config(/* @ngInject */ function($stateProvider, $urlRouterProvider) {
var authenticated = ['$q', 'MeHelper', '$state', function ($q, MeHelper, $state) {
var deferred = $q.defer();
MeHelper.ready()
.then(function (me) {
if (me.isAuthenticated()) {
deferred.resolve();
} else {
deferred.reject();
$state.go('login');
}
});
return deferred.promise;
}];
$stateProvider
.state('index', {
url: "",
views: {
"FullContentView": { templateUrl: "start.html" }
}
})
.state('dashboard', {
url: "/dashboard",
views: {
"FullContentView": { templateUrl: "dashboard/dashboard.html" }
},
resolve: {
authenticated: authenticated
}
})
$urlRouterProvider.otherwise('/404');
});
})();
編集:MeHelper
はサービスです。
あなたは 'authenticationProvider'のようなものを作成し、そこに入れてもらえますか? – plong0
@ plong0 authenticationProviderを作成しようとしましたが、それを動作させることができませんでした。 MeHelperと$ stateの注入はプロバイダでは機能しませんでした。 –