我创建了一个 UI5 应用程序,现在想使用 sap.ui.getCore().byId(id)
来访问现有控件。在同一个控制器/视图中,我可以通过this.byId(id)
访问它们,但要访问其他文件(例如控制器)中的控件,我需要sap.ui.getCore().byId(id)
。
但是,虽然sap.ui.getCore()
返回一个核心对象,但我无法通过它的byId()
函数访问控件,而是得到undefined
。我已经构建了一个 UI5 应用程序,并且对此函数调用没有问题。
我必须配置一些东西才能正常工作吗?
如果你查看视图的 byId
-方法,你可以看到它在视图 ID 前面,它本质上调用sap.ui.getCore().byId(this.createId(id))
。
这样您就可以多次实例化视图,而不会有重复的 ID。为了从外部访问控件,您要么需要视图以便可以调用 view.byId(id)
,要么必须手动将视图的 ID 与 ID 连接起来,如下所示:sap.ui.getCore().byId(viewId + "--" + id)
。