#javascript #sapui5 #sap-fiori
#javascript #sapui5 #sap-fiori
Вопрос:
у меня странная проблема с моим полем поиска в моем приложении SAPUI5. Я не могу что-то написать в своем поле ввода, но поиск подсказывает мне некоторые порядковые номера? Может быть, кто-нибудь сможет мне помочь — большое спасибо!
Вид:
<SearchField id="orderSearchField" value="{Ordernr}" placeholder="Vertragsnummer suchen..." enableSuggestions="true" search="onSearch"
suggest="handleSuggest" showSearchButton="false" suggestionItems="{ path: '/OrderSet', length: 10, sorter: { path: 'Ordernr' } }"
liveChange="handleOrderChange">
<suggestionItems>
<SuggestionItem text="{Ordernr}" description="{Name1} {Name2}" key="{Ordernr}"/>
</suggestionItems>
</SearchField>
Контроллер:
handleSuggest: function (oEvent) {
var sTerm = oEvent.getParameter("suggestValue"),
oSearchField = oEvent.getSource(),
oBinding = oSearchField.getBinding("suggestionItems");
var aFilters = [];
if (sTerm.length > 0) {
aFilters.push(
new sap.ui.model.Filter(oSearchField.data("prop"), sap.ui.model.FilterOperator.StartsWith, sTerm));
aFilters.push(new sap.ui.model.Filter("Status", sap.ui.model.FilterOperator.EQ, 5));
oBinding.filter(aFilters);
oBinding.attachEventOnce("dataReceived", function (oEvent) {
oSearchField.suggest();
});
}
onSearch: function (event) {
var oSource = event.getSource(),
oItem = event.getParameter("suggestionItem");
if (oItem) {
var objectPath = oItem.getBindingContext().getPath(),
oView = this.getView(),
sPath = oView.getBindingContext().getPath();
this._setOrderData(objectPath, sPath);
}
},
handleOrderChange: function () {
this._resetOrderData();
},
Комментарии:
1. Каждый раз, когда вы нажимаете клавишу,
handleOrderChange
вызывается, которая вызываетthis._resetOrderData
. Это, вероятно, сбрасывает вашу OrderModel. Значение вашего поля поиска привязано к вашему Ordernr . Итак, каждый раз, когда вы нажимаете клавишу, ваше поле поиска будет сбрасываться ?! Помог бы фрагмент кода_resetOrderData
.2. Большое спасибо — это помогло мне!