2016-05-09 5 views
-2

サーバーからトークンを取得しようとしていますが、サービスでメソッドを呼び出すときにエラーが発生しました。コントローラ内のサービスにアクセスできない

LoginController.js:

(function(){ 
    angular.module('app') 
     .controller('LoginController', [ 
      '$http', 'authService', 
      LoginController 
     ]); 

    function LoginController(authService) { 
     var vm = this; 
     vm.user = {}; 

     vm.login = function() { 
      console.log("logging in"); 
      authService.getToken("admin", "admin") 
       .then(function (data) { 
        console.log(data); 

       }, function (error) { 
        //TODO: error handling 
       }) 
     }; 
    } 
})(); 

authService.js:

(function(){ 
    'use strict'; 

    angular 
     .module('app') 
     .factory('authService', ['$http', '$rootScope', 'REST_END_POINT', 
      authService 
     ]); 

    function authService($http, $rootScope, REST_END_POINT){ 
     return { 
      getToken: function(username, password) { 
       var config = { 
        headers: { 
         'Accept': 'application/json' 
        } 
       }; 
       var data = { 
        username: login, 
        password: password 
       }; 
       return $http.post(REST_END_POINT, +"/authenticate", data, config); 
      } 

     }; 
    } 
})(); 

私はこのエラーを取得しておいてください。

例外TypeError:authService.getTokenはLoginController.vmで機能 ではありません.login

答えて

0

あなたのコントロールに$ httpを追加するのを忘れたer機能。

angular.module('app') 
    .controller('LoginController', [ 
    '$http', 'authService', 
    LoginController 
    ]); 

    function LoginController(_$http_needs_to_be_here, authService) { 
    ... 
+0

は真剣にそれはということでしたか?ありがとう! –

+0

あなたは大歓迎です。 ) – k10der

0

あなたはそれがあなたがLoginController機能でのparamsの間違いなしを持って

すでにあなたのサービスに
angular.module('app') 
    .controller('LoginController', [ 
     'authService', 
     LoginController 
    ]); 
0

を注入し持っているので、この行から$httpを削除します。あなたは、$ httpとauthServiceを注入するための要求角度を持っています。しかし、あなたは一つのパラメタしか持っていません。詳細情報についてはPLSのはAngular DI

再書き込みコードを読み取る:

(function(){ 
    angular.module('app') 
     .controller('LoginController', [ 
      '$http', 'authService', 
      LoginController 
     ]); 

    function LoginController($http, authService) { 
     var vm = this; 
     vm.user = {}; 

     vm.login = function() { 
      console.log("logging in"); 
      authService.getToken("admin", "admin") 
       .then(function (data) { 
        console.log(data); 

       }, function (error) { 
        //TODO: error handling 
       }) 
     }; 
    } 
})(); 
関連する問題