2016-04-01 5 views
0

Ich habe ein Modell, das Website-Informationen enthält.SAPUI5 - FilterOperator.Contains Funktioniert nicht korrekt

Wenn ich eine Suche am Anfang des "SearchString" (mit FilterOperator.Contains), wird die Eingabeliste fein gefüllt, aber wenn ich nach einer Zeichenfolge nicht am Anfang der Zeichenfolge suchen, wird nichts zurückgegeben.

z ... Search = "100 Meine Stadt"

Ein Eintrag von '100' arbeitet. Ein Eintrag von "My" nicht!

Es wird auch kein Fehler angezeigt.

Controller:

handleSuggest: function (oEvent) { 
    var sTerm = oEvent.getParameter("suggestValue"); 
    var aFilters = []; 
    if (sTerm) { 
     aFilters.push(new Filter("SearchString", sap.ui.model.FilterOperator.Contains, sTerm)); 
    } 

    oEvent.getSource().getBinding("suggestionItems").filter(aFilters); 

}, 

Ausblick:

<Input    
        id="shopInput" 
        type="Text" 
        placeholder="Enter Shop Number ..." 
        showSuggestion="true" 
        suggest="handleSuggest"  
        suggestionItems="{/SiteSet}" 
        change="validateInput" 
        liveChange="liveChange" 
        valueStateText="Shop Number must be valid" 
        suggestionItemSelected="suggestionItemSelected"> 
        <suggestionItems> 
         <core:Item text="{SearchString}" /> 
        </suggestionItems> 

Irgendwelche Ideen?

+0

hast du von rechts unter die Nase im input.suggestions.custom Abschnitt die Lösung jetzt haben Sie einen anderen Operator verwenden? wie startet mit? Nur um zu überprüfen, ob die allgemeine Funktionalität funktioniert? – zyrex

+0

Ja. StartsWith ist in Ordnung. Enthält auch die korrekte JSON aus dem SAP-Service ... –

Antwort

0

Soweit ich sehen kann, fehlt es Ihnen, um die ID in der Suggestion-Artikel zu setzen, mit dem Sie danach suchen können? Ihr Filter geht auf SiteId, aber Ihr Suggestion-Element wird nur an SearchString gebunden.

sollten Diese helfen:

<suggestionItems> 
     <core:Item key="{SiteId}" text="{SearchString}" /> 
</suggestionItems> 
+0

Ich habe jetzt den ursprünglichen Beitrag korrigiert. Ich suche nicht auf SiteId, ich suche auf SearchString. SiteId ist jedoch der Schlüssel in den oData, nicht in SearchString. Ich habe item key = "SiteId" (oben) eingeschlossen, aber ohne Glück –