2017-07-31 7 views
1

/はTypeErrorを機能にアクセスすることはできません:プロパティを読み取ることができません未定義/ の「入手トークン」私はファクトリ関数で定義されている入手トークン関数を呼び出すしようとしています。はAngularJsにディレクティブを通じて工場から

ディレクティブとファクトリは別々の.jsファイル にありますが、エラーが発生しており、この関数にアクセスすることはできません。

angular.module('pesaveWeb') 
    .directive('goals', function goalsDrctv ($timeout) { 
    'use strict'; 
    return { 
     restrict: 'E', 
     replace: true, 
     scope: true, 
     templateUrl: "js/directives/goals.tmpl.html", 
     controllerAs: 'savings', 
     controller: function ($routeParams, $scope, 
     savingsFactory,tokenFactory) { 

     this.message = {}; 

     var token=tokenFactory.getToken(); 
     var getGoals = savingsFactory.getGoals(token); 
     if (getGoals) { 
      getGoals.then(angular.bind(this, function (response) { 
      savingsFactory.message = response; 
      this.message = savingsFactory.message; 
      alert(JSON.stringify(this.message)); 

      })); 
     } 
     } 

    } 
    }); 



angular.module('pesaveWeb').factory('tokenFactory', function tokenFactory ($http,$routeParams) { 
    'use strict'; 
    var obj = {}; 


    obj.getToken = function() { 

     return $http({ 
      method: 'POST', 
      url: "../api/v1/getToken", 
      headers : { 
        'Content-Type':'application/json', 
        'X-API-KEY':'04g4g00c04ks4sokgkoosg0kwww0cww4www0kc80', 
        'Authorization':"Basic cGVzYXZlQXBwOkNDNTVzV0FwUW0zYWxpazlLNTcwTTFXQ1RNOUJ1TmZS" 
       }, 
      data: {"grant_type":"client_credentials"} 
     }) .success(function (data) { 


      }) 
      .error(function (data) { 
      }); 

    }; 

    }); 
+1

工場から 'obj'を返す必要があります。ファクトリコードの最後に 'return obj;'文を追加します。 – Vandesh

+0

Worked ..おめでとう!!! –

+1

コード内の別の潜在的な問題。私が投稿した回答を確認してください。 – Vandesh

答えて

0

あなたのファクトリ関数を使用すると、に関数をバインドするために使用しているobjを返す必要があります。

angular.module('pesaveWeb').factory('tokenFactory', function tokenFactory ($http,$routeParams) { 
    'use strict'; 
    var obj = {}; 


    obj.getToken = function() { 

     return $http({ 
      method: 'POST', 
      url: "../api/v1/getToken", 
      headers : { 
        'Content-Type':'application/json', 
        'X-API-KEY':'04g4g00c04ks4sokgkoosg0kwww0cww4www0kc80', 
        'Authorization':"Basic cGVzYXZlQXBwOkNDNTVzV0FwUW0zYWxpazlLNTcwTTFXQ1RNOUJ1TmZS" 
       }, 
      data: {"grant_type":"client_credentials"} 
     }) .success(function (data) { 


      }) 
      .error(function (data) { 
      }); 

    }; 
    return obj; 
    }); 

また、別の潜在的な問題は、予想通りgetToken()機能が動作しない場合がありますです。角度の$qサービスを使用してgetToken()関数のトークンの値を解決するには、 "約束"を使用する必要があります。それをチェックしてくださいdocumentation here

関連する問題