2017-07-03 3 views
0

Ich habe diesen Code mit AngularJS und NGTagsInput. Ich benutze Filter in AutoComplete, und Sie können neue itens mit 'Enter' hinzufügen, aber ich wollte diese Nachricht für den Benutzer zeigen. Wenn das Ergebnis nicht automatisch abgeschlossen wird, zeigen Sie die Meldung an: "Keine Ergebnisse gefunden. Drücken Sie die Eingabetaste, um hinzuzufügen" Ich habe versucht, einen Else-Filter zu setzen. funktioniert aber nicht, weil er jeden einzelnen Buchstaben überprüft. AngularJS 1.x NgTagsInput Meldung anzeigen

 $scope.loadCountries = function($query) { 
    return $http.get('countries.json', { cache: true}).then(function(response) { 
     var countries = response.data; 
     return countries.filter(function(country) { 
     return country.name.toLowerCase().indexOf($query.toLowerCase()) != -1; 
     }); 
    }); 
    }; 
}); 

Hier ist ein Plnkr: PLUNKR

Dank für das jetzt! =)

Antwort

1

Sie müssen nur überprüfen, ob ein zurückgegebenes Objekt übereinstimmt, auf andere Weise nur überprüfen, ob das mit dieser Abfrage gefilterte Array ein Element hat. Wenn es keine abgestimmte Artikel sind dies bedeuten keine Daten: D

$scope.loadCountries = function($query) { 
    return $http.get('countries.json', { cache: true}).then(function(response) { 
     var countries = response.data; 
     var filtered = countries.filter(function(country) { 
     return country.name.toLowerCase().indexOf($query.toLowerCase()) != -1; 
     }); 
     $scope.nodata = filtered.length === 0; 
     return filtered; 
    }); 
    }; 

http://plnkr.co/edit/fo1lExzjz0eJxloaljd0?p=preview

+0

Vielen Dank! Klappt wunderbar! : D – Johnson

Verwandte Themen