我想将相同的SAPUI5组件用于不同的用途。
我想区分用户设置,如下所示
var oComponentContainer = new sap.ui.core.ComponentContainer( {
url : "resources/components/clientSelector",
name : "components.clientSelector",
id : "components.clientSelector",
propagateModel : true,
settings : {
bPopupView : true,
iOffset : $(document).height() - 300
}
});
有时当我在console.log中运行我的component.oContainer时,它会完全按照预期显示它,有时它根本不会显示任何内容,它会显示undefined
。
这可能与我的javascript异步有关吗?
答案 0 :(得分:0)
我发现了问题&回答。在创建容器之前,SAPUI5会创建并实例化组件。根据组件的创建速度(包括视图和控制器初始化),此代码可能已在设置设置时完成。
我还找到了解决这个问题的方法:我现在使用的是componentData属性,而不是设置,它就像一个魅力:
var oComponent = sap.ui.getCore().createComponent( {
url: "resources/components/clientSelector",
name: "components.clientSelector",
id: "components.clientSelector",
componentData: {
test: "xx"
}
});
var oComponentContainer = new sap.ui.core.ComponentContainer( {
component: oComponent
});
我可以从第一个视图的初始化访问oComponent.getComponentData(),并返回我的测试数据。