#angularjs #promise #angular-promise #angularjs-service
#angularjs #обещание #angular-обещание #angularjs-service
Вопрос:
На самом деле выполнение моего обещания начинается здесь в if
условии, что все работает нормально, но проблема в том, что вызов службы вызывается дважды, функция opmodel.concactDetails
вызывается дважды.
Я вызываю concatDetails
один раз возвращаю обещание, которое оно вызывает, getPortfolio
какую службу, но я не могу понять, почему оно вызывается дважды
model.gridevents = function () {
if (!opmodel.filterData.portfolioID) {
opmodel.concactDetails(true)
.then(model.setportifolioDetails)
.then(model.getDrawsDetails);
}
gridPagination.setGrid(grid);
gridTransform.setGridModel(grid);
gridTransform.setGridPaginationModel(gridPagination);
gridPagination.setData(gridPaginationConfig);
return model;
};
model.setportifolioDetails = function (resp) {
opmodel.setportifolioDetails(resp);
model.getDrawsDetails();
};
model.getDrawsDetails = function () {
model.setBusyIndicator(true);
svc.getDrawsDetails(opmodel.filterData)
.then(model.bindDraws, model.error);
};
model.concactDetails = function (flag) {
model.flag = flag;
var data = {
data: {
contact: session.get('contact'),
portalsettings: session.get('portalsettings'),
companyName: session.get('companyName'),
epayEnabled: session.get('epayEnabled'),
prodName: session.get('prodName'),
showProductName: session.get('showProductName'),
userRole: session.get('userRole'),
statementPeriodCustom: session.get('statement_period_custom'),
}
};
return model.updateFilterDetails(data);
};
model.updateFilterDetails = function (resp) {
model.filterData = {
setDefault: true,
startDate: moment(resp.data.contact.portalDefaultStartDate).format("MM/DD/YYYY"),
endDate: moment(resp.data.contact.portalDefaultEndDate).format("MM/DD/YYYY"),
filterStartDate: moment(resp.data.contact.portalDefaultStartDate).format("YYYY-MM-DD"),
filterEndDate: moment(resp.data.contact.portalDefaultEndDate).format("YYYY-MM-DD"),
includeUnpaid: false,
dateRangeFunction: resp.data.contact.portalDefaultFilterPeriod ?
(resp.data.contact.portalDefaultFilterPeriod === "customPeriod()" amp;amp; resp.data.contact.customPeriodLabel === "None") ?
"thisMonth()" : resp.data.contact.portalDefaultFilterPeriod : 'thisMonth()',
customPeriodLabel: resp.data.contact.customPeriodLabel,
portfolioID: resp.data.contact.portalDefaultPortfolioID,
portfolioId: resp.data.contact.portalDefaultPortfolioID,
epayInfo: resp.data.contact.epayInfo,
epayEnabled: resp.data.epayEnabled,
allowOwnerChangeBankInfo: resp.data.portalsettings.allowOwnerChangeBankInfo,
showRealTimeData: resp.data.portalsettings.showRealTimeData,
statementPeriodCustom: resp.data.statementPeriodCustom,
};
model.contactDetails = resp.data;
if (!model.flag) {
if (resp.data.portalsettings.showRealTimeBalances !== undefined amp;amp; resp.data.portalsettings.showRealTimeBalances !== true) {
state.go("ownerPortal.alternateDashboard");
}
}
model.flag = undefined;
return model.portfolioData();
};
model.setportifolioDetails = function (resp) {
if (resp.data.length > 0) {
model.portfolios = resp.data;
model.filterData.portfolioID = model.filterData.portfolioID ?
model.filterData.portfolioID : resp.data[0].id;
model.filterData.portfolioId = model.filterData.portfolioID;
model.portfolioName = _.find(resp.data, {
id: model.filterData.portfolioId
}).name;
}
};
Комментарии:
1. Не могли бы вы вместо этого создать JSFiddle или CodePen? Спасибо!
2. Это
concat
илиcontact
?3. Где находится
opmodel.concactDetails
функция? Это то же самое, чтоmodel.concactDetails
? Есть двеmodel.setportifolioDetails
функции. Наличие двух функций с одинаковым именем очень сбивает с толку.