SAPUI5如何使sap.m.Wizard处理超过8个步骤

SAPUI5 how to make sap.m.Wizard handles more than 8 Steps

请问有什么方法可以使 sap.m.Wizard 能够处理超过 8 个步骤,或者是否有任何替代此控件的方法?实际上当我输入超过8个时它并没有显示其他步骤。

非常感谢您的任何提示。

此致

艾琳

我刚刚查看了sap.m.Wizard的源代码:https://github.com/SAP/openui5/blob/master/src/sap.m/src/sap/m/Wizard.js

有一个常量将步数限制为 8(正如您已经发现的那样)。

该常量在方法Wizard.prototype._isMaxStepCountExceeded中使用。然后在Wizard.prototype.addStep.

中使用了这个方法

我看到了 3 种可能性。其中 2 个包括子类化向导:

  • 将子类中的常量 Wizard.CONSTANTS.MAXIMUM_STEPS 重写为大于 8 的值。
  • 重写子类中的 addStep 方法,这样就可以无限地执行步骤。
  • 如果启用分支,向导将忽略常量 MAXIMUM_STEPS。但这对我来说似乎不是一个好的解决方案,因为它需要更改 XML.
  • 中的每个 WizardStep

编辑:这是一个完整的子类化示例

sap.ui.define([
    "sap/m/Wizard"
], function(Wizard) {
    "use strict";

    return Wizard.extend("mynamespace.InfiniteWizard", {

        renderer: {},

        addStep: function (wizardStep) {
            this._incrementStepCount();
            return this.addAggregation("steps", wizardStep);
        }
    });
});