SAPUI5 - FilterBar - setVisible 不工作

SAPUI5 - FilterBar - setVisible not working

我正在对一个项目使用 sap.ui.comp.filterbar.FilterBar 控制。一切正常,除非我试图隐藏此控件。

var oFilterBar = new sap.ui.comp.filterbar.FilterBar("filterBar",{
    reset: oController.handleOnReset,
    search: oController.handleOnSearch,
    showRestoreOnFB: true,
    showClearOnFB: true,
    showRestoreButton: true,
    showClearButton: true,
    ...
    });
oFilterBar.setVisible(false);

我收到以下错误:
Uncaught TypeError: oFilterBar.setVisible is not a function

因为这个 属性 是从 sap.ui.core.Control class 继承的,所以这应该可以工作,我认为它也与版本无关(我使用的是 1.24)。

与版本有关。

在 SAPUI5 1.28[1] 中,属性 visible 被移动到 sap.ui.core.Control 因此任何扩展它的控件也将具有此 属性。

如果您只使用较早版本的控件,可以使实现此 属性 的控件本身不可见。


但是您可以扩展您正在使用的控件以包含此 属性:

sap.ui.comp.filterbar.FilterBar.extend("my.FilterBar", {
    metadata: {
        properties: {
            visible: {
                type: "boolean",
                group: "Appearance"
            }
        }
    },
    renderer: function (oRm, oControl) {
        if (oControl.getVisible()) {
            sap.ui.comp.filterbar.FilterBarRenderer.render(oRm, oControl);
        } else {
            // Handle invisibility
        }
    }
});