我试图找出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()
运行时,模型当然存在,我可以执行上面的行。但是这太迟了,我想在此之前阅读这个属性。
答案 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");
});
}