sap.ui.getCore()。byId()在切换导航后重新定义undefined

问题描述 投票:0回答:1

我在控制器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>&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()返回undefined。 sap.ui.getCore().byId("APPROVE")应该在函数isPD()上返回“value”和“undefined”。这是在第一次加载,但在更改isPD()中的值后,它无法正常工作。

javascript sapui5
1个回答
0
投票

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

在清单中:

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.