sap.m.Wizard:丢弃进度后,下一步无法正常工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sap.m.Wizard:丢弃进度后,下一步无法正常工作相关的知识,希望对你有一定的参考价值。

我正在使用SAPUI5 1.71.1

上下文

我对向导控件有一个奇怪的问题。当用户返回上一步并更改影响下一个步骤的数据时,必须完成displaceProgress。SAPUI5演示工具包中提供了一个工作示例:https://sapui5.hana.ondemand.com/1.71.1/#/entity/sap.m.Wizard/sample/sap.m.sample.WizardBranching

在给定的示例中,如果您转到第3步,然后回到第2步,并更改付款方式,则会出现一个弹出窗口,要求您放弃进度。然后,出现下一个按钮,您可以再次继续执行步骤3。

我想避免单击此下一个按钮,并使用方法myWizard.nextStep()自动转到步骤3。

setDiscardableProperty: function(params) 
  if (this._wizard.getProgressStep() !== params.discardStep) 
    MessageBox.warning(params.message, 
      actions: [MessageBox.Action.YES, MessageBox.Action.NO],
      onClose: function(oAction) 
        if (oAction === MessageBox.Action.YES) 
          this._wizard.discardProgress(params.discardStep);
          history[params.historyPath] = this.model.getProperty(params.modelPath);
          this._wizard.nextStep(); // not working properly
         else 
          // ...
        
      .bind(this)
    );
   else 
    // ...
  
,

怎么了?

通常,当您单击下一步按钮时,滚动条将引导您进入下一步并隐藏上一步:

Result -> Normal behaviour

但是当您在调用nextStep()之后立即使用方法discardProgress()时,由于不再触发滚动,因此不再隐藏上一步:

Result -> What happend is not correct

根据SAP提供的示例,我大胆尝试以帮助您理解问题:https://plnkr.co/edit/1fRmuXOI0m9VuDJq?open=lib%2Fscript.js&preview

答案

[看起来像是可以修复的错误。*在此之前,无需进行太多更改,只需在下一个浏览器事件周期中调用nextStep(例如,通过setTimeout)就可以了。

this._wizard.discardProgress(params.discardStep);
//...
setTimeout(() => this._wizard.nextStep()); // for UI5 1.73 and below

* 更新:自UI5 1.74.0起,该问题不再可重现。

以上是关于sap.m.Wizard:丢弃进度后,下一步无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

使用 vee-validate 返回后无法进入下一步

29 ArcMap许可服务器点击授权后无法进入下一步

office安装进度0

win10系统,刻录光盘时提示:源文件名和目标文件名相同。无法刻录怎么办?

win10 enterprise 2016 ltsb x64怎么激活

Java 等待线程完成