在收到数据前隐藏控件
Hide control before data received
我有 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,即使按钮满足可见条件,它也永远不会可见。
您需要将 HolButtonVisiblity 模型中的 HolButtonVisible 初始化为 false。虽然未定义,但按钮仍然可见。
我认为您应该添加更多信息以解决您的问题。
您的 HolButtonVisiblity JSONModel 是否在开始时初始化?
您应该做的是初始化它(在您的 manifest.json 或 Component.js 中),例如:
{
"HoldButtonVisible": false
}
比
onDataReceived: function (oEvent) {
var sHoldVisible = aData[0].activeFlag;
this.getView().getModel("HoldButtonVisiblity").setProperty("/HoldButtonVisible", sHoldVisible);
}
请注意,我使用了您的代码,但我不知道您从哪里获得 aData 信息,也不知道 activeFlag 的值类型。如果它不是布尔值,请转换它。
我有 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,即使按钮满足可见条件,它也永远不会可见。
您需要将 HolButtonVisiblity 模型中的 HolButtonVisible 初始化为 false。虽然未定义,但按钮仍然可见。
我认为您应该添加更多信息以解决您的问题。 您的 HolButtonVisiblity JSONModel 是否在开始时初始化?
您应该做的是初始化它(在您的 manifest.json 或 Component.js 中),例如:
{
"HoldButtonVisible": false
}
比
onDataReceived: function (oEvent) {
var sHoldVisible = aData[0].activeFlag;
this.getView().getModel("HoldButtonVisiblity").setProperty("/HoldButtonVisible", sHoldVisible);
}
请注意,我使用了您的代码,但我不知道您从哪里获得 aData 信息,也不知道 activeFlag 的值类型。如果它不是布尔值,请转换它。