0

私のプロジェクトでは、以下のserviceURLアンギュラープロバイダがあります。角度プロバイダgetメソッドには、設定ブロックからの設定変数の参照がありません

app.provider("serviceURL", function() { 

var cartServiceBaseSite = ''; 
var domainName = ''; 

var GetRatingURL = domainName + '/comments.getComments?format=jsonp&callback=JSON_CALLBACK&data={0}&&order={1}='      

return { 
     setCartServiceBaseSite: function(value){ 
      cartServiceBaseSite = value; 
     }, 
     setDomainName: function(value){ 
      domainName = value; 
     }, 
     $get: function() { 
      return { 
       GetServiceURL: function(serviceConstantURLName, paramsArray){ 
       var requestURL = eval(serviceConstantURLName); 

       for(var i = 1; i <= paramsArray.length; i++) { 
        requestURL = requestURL.replace(new RegExp('\\{' + (i-1) + '\\}', 'gi'), paramsArray[i-1]); 
       } 

       return requestURL; 
       } 
      } 
     } 
    }; 
}); 

私は角configブロックの定数と同じくらい良いですcartServicebaseSite & domainNameの変数を設定しています。

var app = angular.module('myModule', []); 

app.config(['serviceURLProvider', function (serviceURLProvider) { 

    serviceURLProvider.setCartServiceBaseSite('US_BASESITE'); 
    serviceURLProvider.setGigyaDomainName('http://somerandom.com'); 

}]); 

このserviceURLプロバイダをコントローラに挿入し、適切なセットアップ後にURLを取得しています。

コントローラーコード:プロバイダのブロックで

myModule.controller('T', ['serviceURL', function (serviceURL){ 

    var paramsArray = []; 
    paramsArray[0] = 'dataValue'; 
    paramsArray[1] = 'orderValue'; 

    serviceURL.GetServiceURL('GetRatingURL', paramsArray); 

}]); 

私はGEtServiceURLメソッドを呼び出すときに私は、プロバイダブロック内の変数以外の何ものでもない「GetRatingURL」としてパラメータを渡しています。

私はsetDomainNameから設定したdomainName値を取得していないことを評価するためにeval式を使用しています。

current output - '/comments.getComments?format=jsonp&callback=JSON_CALLBACK&data=dataValue&order=orderValue' 

expected output - 'http://somerandom.com/comments.getComments?format=jsonp&callback=JSON_CALLBACK&data=dataValue&order=orderValue' 

問題は、GetRatingURLにdomainNameが設定されていません。

誰でもこれを助けることができますか、この状況を処理するためのアプローチが必要です。

答えて

0

何が起こっているかを確認するためにconsole.logを追加します。

return { 
     setCartServiceBaseSite: function(value){ 
      cartServiceBaseSite = value; 
      //ADD console.log 
      console.log("Setting BaseSite "+value); 
      console.log("GetRatingURL= "+ GetRatingURL); 
     }, 

結果は、あなたが知っておくべきことを教えてくれなければなりません。

関連する問題