我有UI5按钮。根据来自后端的某些数据,此按钮设置为可见。
因此,我已经在控制器文件的onDataReceived函数中设置了按钮的可见性。
<Button id="idButton" visible="{HoldButtonVisiblity>/HoldButtonVisible}"/>
控制器中的代码
onDataReceived: function (oEvent) {
var sHoldVisible = aData[0].activeFlag;
if(sHoldVisible) {
//make button visible
} else {
//make button invisible
}
}
这很好。但是,问题是,当我启动应用程序时,需要花费3-4秒的时间才能将数据加载到工作列表视图中。在此期间,该按钮仍对用户可见。接收数据后,它变得不可见。
我的问题是,如何在应用初始化时隐藏按钮?我尝试了这段代码:
<Button id="idButton" visible="false"/>
但是,如果我在视图文件中提供visible = false,即使按钮满足可见条件,按钮也永远不会变得可见。
答案 0 :(得分:0)
您需要将HoldButtonVisiblity模型中的HoldButtonVisible初始化为false。未定义时,该按钮仍然可见。
答案 1 :(得分:0)
我认为您应该添加更多信息以解决您的问题。 开始时是否初始化了HoldButtonVisiblity JSONModel?
您应该做的是将其初始化(在manifest.json或Component.js中),例如:
{
"HoldButtonVisible": false
}
和
onDataReceived: function (oEvent) {
var sHoldVisible = aData[0].activeFlag;
this.getView().getModel("HoldButtonVisiblity").setProperty("/HoldButtonVisible", sHoldVisible);
}
请注意,我已经使用了您的代码,但是我不知道您从何处获取aData信息,也不知道activeFlag的值类型。如果不是布尔值,请进行转换。