2017-07-03 55 views
0

我有這個代碼使用AngularJS和NGTagsInput。 我在AutoComplete中使用過濾器,並且可以按'Enter'添加新的itens,但是我想將此消息顯示給用戶。如果沒有自動完成的結果,則顯示消息:「未找到結果,按Enter鍵添加」 我試過在濾波器內部放置一個Else。但不起作用,因爲他檢查每一個字母。AngularJS 1.x NgTagsInput顯示消息

 $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; 
     }); 
    }); 
    }; 
}); 

這裏是一個Plnkr:PLUNKR

感謝吧! =)

回答

1

你只需要檢查是否有一個返回的項目匹配,換句話說,只是檢查用該查詢過濾的數組是否有一個項目。如果沒有匹配的項目這意味着沒有數據: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

非常感謝!奇蹟般有效! :d – Johnson