UI5 1.84.8
OData model V4
This is my workaround implementation. I don't want to use this ugly timer workaround. Do you know how to call this correctly?
onSuggest: function(oEvent){ var oSource = oEvent.getSource(); var sTerm = oEvent.getParameter("suggestValue"); if(sTerm.length === 0) { return } var aFilters = []; if (sTerm) { aFilters.push(new Filter("title", FilterOperator.StartsWith, sTerm)); } var oBinding = oSource.getBinding("suggestionItems") oBinding.filter(aFilters); oBinding.attachEventOnce('dataReceived', function() { setTimeout(() => { oSource.suggest(); }, 100) }); },
Without this timeout, the list will show up blank 50% of the time. The number of items in the list corresponds to the number items in the entity set, but none of the labels are visible. The other 50% of the time it shows up fine. Why am I (seemingly) the only person on the internet with this issue?
Instead of using 'attachEventOnce' on the binding, I think it could possibly be solved by calling 'attachEventOnce' for the event 'updateFinished' on the list of the suggestions. I don't know how to get a hold of that list element though.