2016-11-22 2 views
0

Nach einigem Ausprobieren habe ich eine funktionierende Angular2-Suchfunktion, die auch "Keine Ergebnisse gefunden" auf dem Bildschirm in der Instanz druckt, in der keine Ergebnisse gefunden werden Benutzeranfrage. Meine letzte Herausforderung besteht darin, das Feld neu einzustellen, damit das nächste Mal, wenn der Benutzer zum Suchfeld geht, die Meldung "Keine Ergebnisse gefunden" gelöscht wird. Mit anderen Worten, sobald der Benutzer das Suchfeld existiert, sollte es zurückgesetzt werden. Was ich bisher versucht habe, funktioniert nicht. Wenn der Benutzer aus dem Suchfeld klickt und dann wieder einklickt, wird der Text "Keine Ergebnisse gefunden" immer noch von der letzten Instanz auf den Bildschirm gedruckt. Dies ist, was ich bin mit dem Druck auf dem Bildschirm „Keine Ergebnisse“ zu handhaben:Zurücksetzen einer Funktion "Keine Ergebnisse gefunden" nach Abschluss der Suche

public get noResultsFound(): boolean 
{ 
    if (!Object.isNullOrUndefined(this._results) && this._results.length < 1) { 
     return true; 
    } else if (Object.isNullOrUndefined(this.query)) { 
     return false; 
    } 
} 

Und meiner Meinung nach habe ich folgendes:

<div class="field-container"> 
    <i *ngIf="isSearchIconVisible" class="material-icons search-icon">search</i> 
    <auto-complete-field 
      class="auto-complete-field" 
      #autoCompleteField 
      (keyup)="onKeyUp($event)" 
      (focus)="onFocus()" 
      (blur)="onBlur()" 
      [(value)]="query" 
      [(options)]="__autoCompleteSuggestions">Loading... 
    </auto-complete-field> 
    <div *ngIf="inputHasFocus && noResultsFound" class="no-results-found">No Results Found</div> 
</div> 
+0

noResultsFound ist eine Methode, keine Eigenschaft Ihres Komponentenmodells! * NgIf = "inputHasFocus && noResultsFound" sollte * sein ngIf = "inputHasFocus && noResultsFound()" – Fals

Antwort

0

Nach dem, was du bist Ich würde vorschlagen, dies als Teil Ihrer onBlur() zu behandeln. Also statt:

*ngIf="inputHasFocus && noResultsFound"

so etwas wie:

<div *ngIf="showNoResults" class="no-results-found">No Results Found</div>

Dann in Ihrem Controller, setzen showNoResults zu true wenn noResultFound() gibt true zurück, und setzen Sie ihn auf false in onBlur()

+0

Wenn Sie meinen, dies zu tun: 'öffentlichen get showNoResults(): boolean { if (this.noResultsFound) { return true ; } sonst wenn (this.onBlur) { return false; } } ' Und dann in der Ansicht, dies: ' '

No Results Found
Ich versuchte es, aber leider es hat nicht funktioniert. – Muirik

+0

'public get noResultsFound(): boolean { if (! Objekt.isNullOrUndefined (this._results) && this._results.length <1) { this.showNoResults = true; Rückkehr wahr; } sonst if (Object.isNullOrUndefined (this.query)) { Rückgabe false; } } ' Und ' onBlur() {this.showNoResults = false; } ' – amuramoto

+0

Wenn ich dies versuche, erhalte ich einen Fehler:" Die Eigenschaft 'showNoResults' existiert nicht auf dem Typ 'SearchField'. – Muirik

Verwandte Themen