SAPUI5:向导/分支-等待WizardStep完成事件后返回OData

时间:2018-07-12 10:40:37

标签: javascript odata sapui5

我的问题如下。

我有一个处于“分支”模式的向导。完成向导步骤后,将调用complete方法。在此方法中,我向后端发送OData调用以确定应该显示的NextStep。因此,调用将返回尚未定义的NextStep,并且框架将崩溃,并显示错误,即未定义NextStep。

那么有没有一种方法可以暂停/等待/休眠以返回OData调用而不会导致框架崩溃?

我将不胜感激。 谢谢!

示例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);
    }

1 个答案:

答案 0 :(得分: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);
        }
    });

}

您可以从oResponse对象而不是模型中获取“ NextStep”属性,但是为了清楚起见,我留下了您的代码。