2017-08-17 8 views
0

こんにちは私はangularjsでWebアプリケーションを開発しています。私は以下の要件を持っています。私は1つの工場を持っています。以下にコードスニペットを追加しました。私は上記のコードでは何も悪いことをやっている可能性がありAngularjsでnestファクトリを呼び出す方法は?

leaselisting.leaselisting().then(function (response) { //Problem in calling 
     }, function (error) { }); 

ここ

myapp.factory('sadadpaymentapi', ['$http', '$cookieStore', 'cfg', 'ScrollFunction', 'leaselisting', function ($http, $cookieStore, cfg, ScrollFunction, leaselisting) { 
    var sadadpaymentapiobject = {}; 
    var baseurl = cfg.Baseurl; 
    var LoginID = $cookieStore.get("LoginID"); 
    var cookiePreferredLanguage = $cookieStore.get('PreferredLanguage'); 
    var urlapi = baseurl + "api/ServiceRequest/CreateRSSedad/"; 
    sadadpaymentapiobject.callsadad = function (PaymentType) { 
     leaselisting.leaselisting().then(function (response) { 
     //Problem in calling 
     }, function (error) { }); 
     var request = { 
      url: urlapi, 
      method: 'POST', 
      data: { 
       SRActivityID: LoginID, 
       PaymentType: PaymentType, 
       PaymentAmount: "100" 
      }, 
      headers: ScrollFunction.getheaders() 
     }; 
     return $http(request); 
    } 
    return sadadpaymentapiobject; 
}]); 

は私の第二工場は、以下の行に

myapp.factory('leaselisting', ['$http', '$cookieStore', 'cfg', 'ScrollFunction', function ($http, $cookieStore, cfg, ScrollFunction) { 
    var leaselistingobject = {}; 
    var baseurl = cfg.Baseurl; 
    var LoginID = $cookieStore.get("LoginID"); 
    var cookiePreferredLanguage = $cookieStore.get('PreferredLanguage'); 
    leaselistingobject.leaselisting=function(){ 
    var requestObj = { 
     url: "api/ServiceRequest/GetROLSPSRLeaseList/", 
     data: { 
      LoginID: LoginID, 
      RSAccountNumber: $cookieStore.get("AccountNumber") 
     }, 
     headers: ScrollFunction.getheaders() 
    }; 
    $http(requestObj).then(function (response) { 
    }, function (error) { 
    }); 
    } 
    return leaselistingobject; 
}]); 

私が発見したエラーをleaselistingされますか?ある工場を別の工場に呼び出すことは可能でしょうか?レスリストは私がleaselistingから取得したものです。私はsadadpaymentapiのcalladad関数でそれを渡したいと思います。だから、誰かが上記のコードで私を助けることができますか?私はエラーが発生していますleaselisting.leaselisting().then(function (response) {},function(error){});

また、私は直接支払金額のような工場を注入することができます方法はありますか?

答えて

0

と仮定すると、leaselistingobject.getValueは非同期関数です。

leaselistingobject.getValue = function(){ 
    var requestObj = { 
     url: "api/ServiceRequest/getValue/" 
    }; 
    return $http(requestObj).then(function (response) { 
     return response.data; 
    }); 
} 

をし、それを使用します。 だから、最初のあなたの値を取得します。すべての非同期アクションが終了するように、角度$qを使用します。 Here小さなチュートリアルがあります。文句を言わない可能性のあるエラーについて何かをする場合は、エラーを省略することができます

return $http(requestObj).then(function (response) { 
    return response.data; 
}, function (error) { 
}); 

$http(requestObj).then(function (response) { 
}, function (error) { 
}); 

から関数の最後の変更要求の応答を返すleaselisting()ようにするに

myapp.factory('sadadpaymentapi', ['$http', '$cookieStore', 'cfg', 'ScrollFunction', 'leaselisting', '$q',function ($http, $cookieStore, cfg, ScrollFunction, leaselisting, $q) { 
var sadadpaymentapiobject = {}; 
var baseurl = cfg.Baseurl; 
var LoginID = $cookieStore.get("LoginID"); 
var cookiePreferredLanguage = $cookieStore.get('PreferredLanguage'); 
var urlapi = baseurl + "api/ServiceRequest/CreateRSSedad/"; 
sadadpaymentapiobject.callsadad = function (PaymentType) { 
    var leastListingPromise = leaselisting.leaselisting(); 
    var getValuePromise = leaselisting.getValue(); 
$q.all([leastListingPromise, getValuePromise]).then(function (responses) { 
    //Here you have both responses in an array 
    var request = { 
     url: urlapi, 
     method: 'POST', 
     data: { 
      SRActivityID: LoginID, 
      PaymentType: PaymentType, 
      PaymentAmount: responses[1] 
     }, 
     headers: ScrollFunction.getheaders() 
    }; 
    return $http(request); 


    }); 
} 
return sadadpaymentapiobject; 
}]); 

機能部:

return $http(requestObj).then(function (response) { 
    return response.data; 
}); 
+0

よろしくお願いいたします。支払金額を行うことは可能ですか?工場に注入し、値を割り当てます。ありがとうございます –

+0

申し訳ありませんが、私はあなたがそれによって何を意味するか分かりません。 – Astasian

+0

sadadpaymentapi工場では私はコールアドメソッドを持っています。その方法では、私は3つの入力パラメータ、例えば、分类、支払いタイプ、支払い金額を持っています。今私はleaselisting工場から支払額に値を割り当てたいので、私は何か支払い金額を行うことができます:リースリストAPIから価値を得る。 –

関連する問題