SAPUI5: мастер / ветвление - ожидание возврата OData при завершении события WizardStep

1

моя проблема заключается в следующем.

У меня есть мастер в режиме ветвления. По завершении шага мастера вызывается полный метод. В рамках этого метода я отправляю вызов 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);
    }
  • 0
    Пожалуйста, добавьте код, чтобы пролить свет на то, что вы пытаетесь сделать
  • 0
    Спасибо, я обновил пост.
Теги:
sapui5
odata

1 ответ

0

Попробуйте использовать "успешный" обратный вызов 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 вместо модели, но я оставил ваш код для ясности в отношении того, что именно я предлагаю.

  • 0
    Эй, спасибо за твой ответ. Но это не работает по нескольким причинам. 1. submitChanges не имеет обратного вызова, если вы не используете BatchMode. 2. Фреймворк использует NextStep при нажатии кнопки, в противном случае произойдет сбой, ожидание невозможно. Чтобы решить эту проблему, я создам сообщение о том, как я это сделал, но вкратце: -> Удалите кнопки Framework «NextStep» и замените их своими собственными -> Импорт функции из бэкэнда по щелчку, чтобы получить NextStep
  • 0
    Ах, не знал, что вы не используете пакетный режим (почему бы и нет? Любопытно). Я понимаю, что вы имеете ввиду. Вы пытались связать переменную с validated свойством? Таким образом, вы можете запустить свой onStepOneComplete только форма (или любые другие условия, которые должны быть выполнены), когда проверка завершена. Затем вы можете подождать, пока ваши асинхронные данные (NextStep prop) вернутся, прежде чем установить для шага значение validated="true" и он уже будет знать, какой следующий шаг будет, когда пользователь complete действие.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню