如何从实用程序函数访问SAPUI5组件?

如何从实用程序函数访问SAPUI5组件?,sapui5,Sapui5,我想从实用程序函数(例如formatter或class函数)中使用此.getOwnerComponent()访问我的SAPUI5应用程序组件,这可以从控制器中工作,但在另一个文件夹中的实用程序或formatter函数中不起作用。我不想使用sap.ui.getCore(),还有其他方法吗?您可以将控制器实例传递给构造函数中的实用程序类,然后访问其所有者组件。您也可以尝试直接注入组件。不幸的是,我不确定这些是否是UI5开发中的首选方式 这会将实用程序函数与组件逻辑耦合起来,我认为这不是一个好主意,您

我想从实用程序函数(例如formatter或class函数)中使用此.getOwnerComponent()访问我的SAPUI5应用程序组件,这可以从控制器中工作,但在另一个文件夹中的实用程序或formatter函数中不起作用。我不想使用sap.ui.getCore(),还有其他方法吗?

您可以将控制器实例传递给构造函数中的实用程序类,然后访问其所有者组件。您也可以尝试直接注入组件。不幸的是,我不确定这些是否是UI5开发中的首选方式


这会将实用程序函数与组件逻辑耦合起来,我认为这不是一个好主意,您可能应该只传递实用程序函数完成其“工作”所需的内容

我最后有以下两个选择: 1.将实用程序function创建为单例类,并使用setComponent方法一次性传递该组件。
2.使用事件总线触发事件并通过组件完成只能在组件内完成的事情,如访问oData资源

在哪里调用实用程序功能?它将从控制器内调用。是的,这是一种可能性,但它不是干净的实现。