如何使用不同的图标按钮设置状态并导航到控制器中的不同功能

How to do status with different icon button and navigate to different function in controller

我正在尝试使用不同的图标按钮显示状态,并且可以按下该图标来调用控制器中的不同功能。这是我如何根据状态显示不同图标按钮的代码。但是,我无法将这些按钮导航到不同的功能。

<Button icon="{= (${TaskStatus} === 'OPEN') ? 'sap-icon://wrench' : 'sap-icon://accelerated' }"> </Button>

我的建议是为每个函数创建一个 sap.m.Button 并根据您的 属性 'TaskStatus'.

设置可见性
<Button icon="sap-icon://wrench" press="function1" visible="{= ${TaskStatus} === 'OPEN' }"/>
<Button icon="sap-icon://accelerated" press="function2" visible="{= !${TaskStatus} === 'OPEN' }"/>

通过这样做,您可以为特定的按钮提供 1 个操作,在我看来,这使得您的项目的未来可能的开发人员更容易阅读。

xml:

<Button 
    id="idButton" 
    icon="{= (${TaskStatus} === 'OPEN') ? 'sap-icon://wrench' : 'sap-icon://accelerated' }"
    press="onButton"/> 

控制器:

onButton: function () {
    if ( this.getView().byId("idButton").getIcon() === "sap-icon://wrench" ) {
        this._functionA();
    } else if ( this.getView().byId("idButton").getIcon() === "sap-icon://accelerated" ) {
        this._functionB();
    } else {
        //some error handling
    }
},


_functionA: function() {
    //ur logic
}

_functionB: function() {
    //ur logic
}

回复评论: getIcon 对我有用(在我的一个项目中测试了代码):