моя проблема заключается в следующем.
У меня есть мастер в режиме ветвления. По завершении шага мастера вызывается полный метод. В рамках этого метода я отправляю вызов OData для Backend для определения NextStep, который должен быть показан. Следовательно, вызов вернет NextStep, пока он еще не определен, и Framework будет сбой с ошибкой, что NextStep не определен.
Итак, есть ли способ приостановить/подождать/поспать для возврата вызова OData без сбоев в Framework?
Буду признателен за каждую помощь. Спасибо!
Пример XML:
<Wizard id="MainWizard" complete="wizardCompletedHandler" enableBranching="true">
<WizardStep id="Step1" title="title" validated="true" subsequentSteps="Step2, Step3" complete="onStepOneComplete"
icon="sap-icon://multi-select">
Пример onStepOneComplete:
onStepOneComplete: function(oEvent) {
this.getView().getModel().submitChanges();
var iNextStep = parseInt(this.getView().getModel().getProperty("/SomeSet('123')/NextStep"), 10);
this.byId("Step1").setNextStep(iNextStep);
}
Попробуйте использовать "успешный" обратный вызов submitChanges
Что-то вроде:
onStepOneComplete: function(oEvent) {
var that = this; // needed to keep "this" object in callback
this.getView().getModel().submitChanges({
success: function(oResponse){
var iNextStep = parseInt(
that.getView().getModel().getProperty("/SomeSet('123')/NextStep"), 10
);
that.byId("Step1").setNextStep(iNextStep);
}
});
}
Вы можете захватить свойство "NextStep" из объекта oResponse
вместо модели, но я оставил ваш код для ясности в отношении того, что именно я предлагаю.
validated
свойством? Таким образом, вы можете запустить свой onStepOneComplete
только форма (или любые другие условия, которые должны быть выполнены), когда проверка завершена. Затем вы можете подождать, пока ваши асинхронные данные (NextStep prop) вернутся, прежде чем установить для шага значение validated="true"
и он уже будет знать, какой следующий шаг будет, когда пользователь complete
действие.