sap.ui.getCore().byId() 切换导航后重新运行未定义



我在控制器onBeforeRendering: function()中调用sap.ui.getCore().byId(),当我第一次加载页面(Tab(时,它按预期工作。现在我正在切换页面以更改另一个函数的值之一,isPD()返回 True OR false,更改值后,我已经验证了控制台并且isPD()看起来不错。现在,一旦我切换回页面,sap.ui.getCore().byId()返回未定义。(如果满足函数isPD()条件,这应该返回 undefined,这是第一次工作,但一旦我更改了 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>&nbsp;</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()返回未定义的值。 sap.ui.getCore().byId("APPROVE")应该在函数isPD()上返回"值"和"未定义"的降级。它正在第一次加载,但在更改 isPD() 中的值后,它不起作用。

在组件或清单中,创建一个 JSON 模型 ( sap/ui/model/json/JSONModel ( 并设置它。在清单中,它就在那里,在组件中,您需要手动创建它。假设您称它为 app .

在清单中:

"models": {
  "app": {
    "type": "sap.ui.model.json.JSONModel"
  }
}

在任何控制器中,this.getOwnerComponent().getModel('app')都应该获取模型。

model.getPropertymodel.setProperty应该在任何控制器中获取模型内任何内容的当前值。此外,您可以将内容绑定到它,例如设置中的单选按钮键CPCONF_APPROVE

相关内容

  • 没有找到相关文章

最新更新