私のプロジェクトでは、以下の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が設定されていません。
誰でもこれを助けることができますか、この状況を処理するためのアプローチが必要です。