Javascript 在SAPUI5中访问另一个控制器中的一个控制器
我有一个SAPUI5母版详细信息页应用程序。所以在母版页控制器中,我需要访问在详细视图中定义的元素。我怎么做Javascript 在SAPUI5中访问另一个控制器中的一个控制器,javascript,sapui5,Javascript,Sapui5,我有一个SAPUI5母版详细信息页应用程序。所以在母版页控制器中,我需要访问在详细视图中定义的元素。我怎么做 jQuery.sap.require("util.Formatter"); jQuery.sap.require("util.Networkaccess"); sap.ui.controller("view.Sales.SalesOrder.SoMaster", { myFunc: function() { var iconTabBar = this.byId(
jQuery.sap.require("util.Formatter");
jQuery.sap.require("util.Networkaccess");
sap.ui.controller("view.Sales.SalesOrder.SoMaster", {
myFunc: function() {
var iconTabBar = this.byId('itabBar');
iconTabBar.setSelectedItem(iconTabBar.getItems()[1]);
}
})
上面的代码会出错,因为主视图中没有
itabBar
元素,它是在详细视图文件中定义的。我不确定我是否确切知道您要做什么,控件的唯一id前缀是视图,您可以尝试
var iconTabBar = sap.ui.getCore().byId("vwDetails--itabBar")
我发现在主视图中添加细节——前缀很尴尬,因为在视图本身中,byId会自动解析前缀。在我看来,一个id在整个应用程序中只应该出现一次。直接访问控制器是耦合的,您应该使用事件、助手,或者如果您使用的是组件或appcontroller,您可以在那里注册控制器并通过这些单例访问它们,然后使用oController.getView().byId()