2017-04-20 3 views
0

によって引き起こされ、表示されない表示します。Angularjsは、私は私のAngularJsモジュールにファクトリ関数を追加する問題を抱えている工場

私は私のホームビューモジュールに「authInterceptor」ファクトリ関数を追加します。ビューが読み込まれていません。しかし、ファクトリ関数を削除すると、ロードされます。

私は間違っていますか?

ホームコントローラ

'use strict'; 

angular.module('myApp.home', ['ngRoute']) 

.factory('authInterceptor', function ($rootScope, $q, $window) { 
    return { 
    request: function (config) { 
     config.headers = config.headers || {}; 
     if ($window.sessionStorage.token) { 
     config.headers.Authorization = 'Bearer ' + $window.sessionStorage.token; 
     } 
     return config; 
    }, 
    responseError: function (rejection) { 
     if (rejection.status === 401) { 
     // handle the case where the user is not authenticated 
     } 
     return $q.reject(rejection); 
    } 
    }; 
}) 

.config(['$routeProvider', function($routeProvider, $httpProvider) { 
    $httpProvider.interceptors.push('authInterceptor'); 
    $routeProvider.when('/', { 
    templateUrl: 'home/home.html', 
    controller: 'HomeCtrl' 
    }); 

}]) 

.controller('HomeCtrl', function($scope, $http, $window) { 
    console.log("Home Controller"); 


}); 

一般的なモジュールローダ

// public/js/app.js 
angular.module('myApp', [ 
    'ngRoute', 
    'myApp.home' 

]) 
.config(['$locationProvider', '$routeProvider', 
    function($locationProvider, $routeProvider, $httpProvider) { 
    $locationProvider.hashPrefix('!'); 



    $routeProvider.otherwise({redirectTo: '/home'}); 
}]) 
.run(function($rootScope, $http){ 
    $rootScope.my_message = 'test'; 



}); 

答えて

2

問題はあなたの工場には、次のコードを壊すセミコロンを、持っていることです。

.factory('authInterceptor', function() { 
    return 'a12345654321x'; 
}); //<==== remove this semicolon 

//otherwise this breaks 
.config(['$routeProvider', function($routeProvider, $httpProvider) { 
    //etc 

}]) 

2番目の問題の編集:あなたの依存関係に$ httpProviderがありません。

.config(['$routeProvider', function($routeProvider, $httpProvider 

=> 

.config(['$routeProvider', '$httpProvider', function($routeProvider, $httpProvider 
+0

ニース、ありがとう。間違いなく私の質問の答えだった。しかし、私は実際に可能な限り小さく私のコードを作り、私は自分自身ミスを犯しました。今私は私の削除コードをバック戻って、私のビューはまだ消えます。あなたは新しいコードを見てみてください。 – Soundwave

+0

編集をチェックしてください。あなたは$ httpProvider猿パッチング – yBrodsky

+0

おかげで男を逃し、それを感謝しています。 – Soundwave

関連する問題