XML何时接收它的值才能显示?

时间:2017-02-08 19:39:57

标签: xml odata sapui5

我试图找出XML何时检索它在SAP UI5中显示的值。它绑定到OData模型,因此我假设它必须执行read()来确定要显示的值。因此,在XML执行read()之后,我将能够在我的控制器中使用此信息。

的example.xml

<ComboBox items="{
                    path: '/ZSpace_EntitySet',
                    sorter: { path: 'Name' }
                 }">
    <core:Item key="{Value}" text="{Name}" />
</ComboBox>

所以在调试模式下我尝试了this.getView().getModel().getProperty("/ZSpace_EntitySet(...)/propertyHere"),但它返回undefined。我已经为onBeforeShow()onAfterShow()试了一下。我在这些方法上暂停调试器并执行上面的行。

我认为我需要一个在XML获取其值后才能运行的函数,因为它将执行read()来填充XML。

更新:当onBeforeHide()运行时,模型当然存在,我可以执行上面的行。但是这太迟了,我想在此之前阅读这个属性。

1 个答案:

答案 0 :(得分:0)

您可以在ComboBox绑定上附加dataReceived处理程序。当控件的数据请求完成时,将触发此处理程序。

XML代码

<ComboBox id="cmbBox" items="{
                path: '/ZSpace_EntitySet',
                sorter: { path: 'Name' }
             }">
<core:Item key="{Value}" text="{Name}" />

控制器代码

onBeforeRendering : function(){
        var oComboBox = this.byId("cmbBox"),
            oBinding = oComboBox.getBinding("items");
        oBinding.attachDataReceived(function(){
            window.alert("Data Received");
        });
}