Sapui5 按钮已禁用,但仍侦听按下事件

Sapui5 按钮已禁用,但仍侦听按下事件,sapui5,Sapui5,我在中有一个提交按钮。在它的压力下,我有一个订单创建过程。如果我多次单击该按钮,将创建多个订单。有没有办法在第一次单击后禁用它 我已经在我的控制器中编写了以下代码,但它似乎仍在听取新闻界的行动: onSubmit:function(oEvent){ this.getView().byId(“save”).setVisible(false); //...... }, 但这并不能完全禁用。尽管在控制台中,当我使用getEnabled()进行检查时,它被设置为false。禁用时如何停止按钮收听pre

我在
中有一个提交按钮。在它的压力下,我有一个订单创建过程。如果我多次单击该按钮,将创建多个订单。有没有办法在第一次单击后禁用它

我已经在我的控制器中编写了以下代码,但它似乎仍在听取新闻界的行动:

onSubmit:function(oEvent){
this.getView().byId(“save”).setVisible(false);
//......
},

但这并不能完全禁用。尽管在控制台中,当我使用
getEnabled()
进行检查时,它被设置为
false
。禁用时如何停止按钮收听press事件?

我认为问题在于setVisible与enables/disabled不同。 也许你可以试着改变一下

setVisible(false);


希望下面的代码可以正常工作。使
SetVisible(false)
只需隐藏按钮

Controller: onSubmit: function(oEvent) { this.getView().byId("save").setAttribute("disabled", true);  
选中此项:

为了详细了解

我可以建议以下解决方案:

  • 点击按钮后,通过JSON模型的属性绑定将其“enabled”属性设置为“false”。一旦异步操作被执行(即成功/失败回调)-通过将“enabled”设置为“true”释放按钮状态
  • 单击按钮后,立即将其“busy”属性设置为“true”(不要忘记将“busyIndicatorDelay”设置为0。释放概念与第1点相同

  • 在我看来,这些方法更适合UI5。就我个人而言,我会选择选项2,因为它以更突出的方式向用户显示处理某些内容的状态。

    非常感谢。我很高兴能提供帮助。如果它有效,请接受答案。
    Controller: onSubmit: function(oEvent) { this.getView().byId("save").setAttribute("disabled", true);