Angularjs在一个工厂内使用工厂价值

Nir*_*ole 0 javascript angularjs

嗨,我正在开发angularjs中的Web应用程序.我有一个带有两个工厂的java脚本文件,它们对web api进行http调用.我想在另一家工厂内使用一个工厂值输出.下面是我的第一家工厂

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 request = {
            url: urlapi,
            method: 'POST',
            data: {
                SRActivityID: LoginID,
                PaymentType: PaymentType,
                PaymentAmount: "100" //Need to get value from another factory
            },
            headers: ScrollFunction.getheaders()
        };
        return $http(request);
    }
    return sadadpaymentapiobject;
}]); 
Run Code Online (Sandbox Code Playgroud)

下面是另一家工厂,我可以在上面的工厂中获得PaymentAmount参数的值.

myapp.factory('leaselisting', ['$http', '$cookieStore', 'cfg', 'ScrollFunction','$q', function ($http, $cookieStore, cfg, ScrollFunction,$q) {
    var leaselistingobject = {};
    var baseurl = cfg.Baseurl;
    var LoginID = $cookieStore.get("LoginID");
    var cookiePreferredLanguage = $cookieStore.get('PreferredLanguage');
    leaselistingobject.getValue = function () {
        var requestObj = {
                                url: baseurl + "api/ServiceRequest/GetROLSPSRLeaseList/",
                                method:'POST',
                                data: {
                                    LoginID: LoginID,
                                    AccountNumber: $cookieStore.get("AccountNumber")
                                },
                                headers: ScrollFunction.getheaders()
                    };
        return $http(requestObj).then(function (response) {
            return response.data;
        });
    }
    return leaselistingobject;
}]);
Run Code Online (Sandbox Code Playgroud)

当我注入PaymentAmount:leaselisting.getValue()并且如果我尝试在注入的控制台值中显示 console.log(leaselisting.getValue());我得到Promise {$$ state等我附加了屏幕截图.我需要的是上图变量AccountNumber. 筑巢工厂

我试图在第一个api,PaymentAmount:"100"而不是硬编码,我想从其他工厂得到它.我可以知道怎么做吗?任何帮助,将不胜感激.谢谢.

Saj*_*ran 5

将工厂注入第二工厂,其余工作与控制器工作方式相同,

myapp.factory('leaselisting', ['$http', '$cookieStore', 'cfg', 'ScrollFunction','$q','sadadpaymentapi', function ($http, $cookieStore, cfg, ScrollFunction,$q,sadadpaymentapi) {
Run Code Online (Sandbox Code Playgroud)