Я не могу писать в своем поле поиска, но функция предложения работает. Как я могу это исправить?

#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. Большое спасибо — это помогло мне!