完成$ onInit中的其他功能后运行该功能

时间:2017-08-06 17:59:19

标签: angularjs ngoninit

在我的$ onInit函数中,我有两个获取数据的函数。我使用第三个函数,我需要前两个数据。我在第三个函数中执行的逻辑是将在屏幕上呈现的内容。如何在$ onInit中使用回调并确保第三个函数在前两个函数之前没有运行?

 var ctrl = this;
 ctrl.company = {};
 ctrl.company.administrators = [];
 ctrl.administrators = [];
 ctrl.$onInit = $onInit;
 ....

function $onInit() {
        $q.all([getCompanies(), getAdministrators()]).then(findAdministrators);
        getUnasignedAdministrators();
    }

    function getCompanies() {
        companiesService.getCompanies()
            .then(function (data) {
                var company = data.items.find(function (company) {
                    if ($stateParams.id === company.id) {
                        return company;
                    }
                });
                ctrl.company.name = company.name;
                ctrl.company.contactPerson = {
                    firstName: company.contactPersonName,
                    lastName: company.contactPersonLastName,
                    phone: company.contactPersonPhone
                };
            })
            .catch(function (response) {
                responseService.displayError(response);
            });
    }

    function getAdministrators() {
        administratorsService.getAdmins()
            .then(function (data) {
                ctrl.administrators = data.items;
            })
            .catch(function (response) {
                responseService.displayError(response);
            });
    }

    function findAdministrators() {
        console.log("getCompanies", ctrl.company);
        console.log("getAdministrators", ctrl.administrators);
    }

编辑我的代码示例

SELECT i1.site_ID, i1.tank_product, i1.volume, i.timestramp, iu.User_ID  
  FROM Inventory AS i1
INNER JOIN (
SELECT u.ID AS UserID, i.tank_product, MAX (i.timestramp) AS time
FROM Inventory AS i2 
INNER JOIN wp_users AS u
ON i2.site_id = u.ID
GROUP BY u.ID, i.tank_product  
) as iu
ON i1.tank_product = iu.tank_product 
AND i1.timestramp = iu.time 
AND i1.site_ID = iu.UserID;

1 个答案:

答案 0 :(得分:0)

您应该考虑从dataset2& getFood方法,并在完成这两个方法承诺时调用getDrinks。通常,代码段如下所示。

combineFoodAndDrinks