我在控制器sap.ui.getCore().byId()
中调用onBeforeRendering: function()
,这是第一次加载页面(Tab)时正常工作。现在我正在切换页面以更改另一个函数isPD()
的值之一返回True或false,更改值后,我已经验证了Console并且isPD()
看起来很好。现在我切换回页面,sap.ui.getCore().byId()
返回undefined 。(如果满足函数isPD()
条件,这应该返回undefines,这是第一次工作但是一旦我更改了isPD()
中的值就无法工作。
var oRB2 = new sap.ui.commons.RadioButton("CPCONF_APPROVE", {
text: '{i18n>acw.common.approveAndAssignTo}',
tooltip: '{i18n>acw.common.assignReqTo}',
groupName: '{18n>acw.ui.cp.Confirmation.group1}',
select: oController.approveSelected
});
vLayout.addContent(oRB2);
if (isPD()) { // check if PD
approve = getPDDropDown("APPROVE");
approve.setEnabled(false);
approve.attachChange(oController.handleChange);
vLayout.addContent(approve);
}
vLayout.addContent(new sap.ui.core.HTML({
content: "<span> </span>"
}));
onBeforeRendering: function() {
var app = sap.ui.getCore().byId("APPROVE");
if (isPD()) { // check if PD
if (app !== undefined)
sap.ui.getCore().byId("APPROVE").setEnabled(true);
} else {
if (app !== undefined)
app.setVisible(false);
if (sap.ui.getCore().byId("CPCONF_APPROVE") !== undefined)
sap.ui.getCore().byId("CPCONF_APPROVE").setText(getI18n("acw.common.approve"));
我尝试在变量声明之前放置isPD()
,isPD重新调整正确的值,但sap.ui.getCore().byId()
返回undefined。 sap.ui.getCore().byId("APPROVE")
应该在函数isPD()
上返回“value”和“undefined”。这是在第一次加载,但在更改isPD()
中的值后,它无法正常工作。
在组件或清单中,创建一个JSON模型(sap/ui/model/json/JSONModel
)并进行设置。在清单中它就在那里,在组件中你需要手动创建它。假设你称之为app
。
在清单中:
"models": {
"app": {
"type": "sap.ui.model.json.JSONModel"
}
}
在任何控制器中,this.getOwnerComponent().getModel('app')
都应该得到模型。
model.getProperty
和model.setProperty
应该在任何控制器中获得模型内部任何内容的当前值。此外,您可以将内容绑定到它,例如CPCONF_APPROVE
设置中的radiobutton键