私は新しいプロジェクトに取り組んでおり、最初のフェーズでは、/api/me に XHR HEAD リクエストを送信して、ユーザーがサーバーとセッションを確立しているかどうかを確認したいと考えています。
次の構文を使用したい
$rootScope.$on("$routeChangeStart", function(event, current, previous, rejection){/*...*/})
問題は、各コントローラーごとにこのコードを書き直したくないということです.一般的な方法でこれを行う方法はありますか?, .run?, service(factory), どの方法が正しいですか?.
私はこのフレームワークの初心者なので、コードの簡単なサンプルを提供してください。
var app = angular.module('home', []);
var httpConfig = {withCredentials: true};
app.config(function($routeProvider){
$routeProvider.
when('/',
{
template: 'views/home.html',
controller: homeCtrl
}).
when('/login',
{
template: 'views/login.html',
controller: loginCtrl
}).
when('/logout',
{
template: 'views/logout.html',
controller: logoutCtrl
}).
otherwise(
{
template: 'views/home.html',
controller: homeCtrl
})
}).
run(function($rootScope, authUser){
$rootScope.$on('$routeChangeStart', function () {
authUser($rootScope);
})
}).
factory('authUser', function($http, httpConfig){
var promise = $http.head('/users/me', httpConfig);
})