有时显示 sapui5 组件设置,有时未定义(相同代码)

sapui5 component settings shown sometimes, sometimes undefined (same code)

我想将同一个 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 异步有关吗?

我找到了问题和答案。 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(),并返回我的测试数据。