sap.ui.getCore().byId()不返回任何元素

pgu*_*ddi 3 sapui5

我有一个问题,我创建了一个新的SAPUI5应用程序,现在想使用sap.ui.getCore().byId(id)来访问现有的控件.在同一个控制器/视图中,我可以通过this.byId(id)访问它们,但是为了访问其他文件(例如控制器)中的控件,我需要sap.ui.getCore().byId(id).

但是,当sap.ui.getCore()返回一个核心对象时,我无法通过它的byId()函数访问控件(返回"undefined").

有什么我必须配置为这个工作?

我已经使用SAPUI5构建了一个应用程序,我对这个函数调用没有任何问题.有人有想法吗?谢谢!

sir*_*ion 17

如果你查看View的byId方法,你可以看到它预先构建了视图Id,它基本上调用了sap.ui.getCore().byId(this.createId(id)).

这样您就可以多次实例化视图而不会有重复的ID.要从外部访问控件,您需要View以便调用view.byId(id),或者您必须手动将视图的id与id连接起来:sap.ui.getCore().byId (viewId +" - "+ id).

  • 不可以.全局ID必须是唯一的,因此您无法使用ID"abc"创建两个控件,这正是我们为其添加视图ID的前缀.通常DOM-Id与控件的ID相同.您可以通过在XML视图中创建ID为"abc"的控件来测试,然后在控制器中调用:this.byId("abc").getId(),您将获得可以与sap一起使用的真实ID. ui.getCore().byId(). (2认同)
  • 现在我明白了,谢谢!对于将来有此问题的人,这里是Doc链接:https://sapui5.netweaver.ondemand.com/sdk/#docs/guide/91f28be26f4d1014b6dd926db0e91070.html (2认同)