0
我的$ onInit函数内我有两个函数来获取数据。我使用第三个函数,我需要前两个数据。我在第三个函数中执行的逻辑是将在屏幕上呈现的内容。如何在$ onInit中使用回调,并确保第三个函数在前两个之前不运行?
ctrl.$onInit = $onInit;
function $onInit() {
getFood();
getDrinks();
combineFoodAndDrinks();
}
编辑我的代码示例
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);
}
谢谢Pankaj。我尝试过,但仍然无法工作。我在第一篇文章中添加了我的代码。管理员alwas返回空阵列,但我回到公司。 –