Angular js filter Query-如果找不到匹配项,则显示一个值



我设置了一个查询过滤器

和过滤器设置

我以国家为例。它可以是任何东西,包括城市、名称、动物等。这就是我想要做的。我使用这个过滤器从一个很大的数组(5000多条记录)中选择一个项目。如果我的查询过滤器没有找到匹配项,我想将"未找到/其他"显示为其中一个选择。我该怎么做?我不想将此值设置为默认值。但只有在找不到其他东西的情况下才显示。

当查询未返回匹配项时,可以使用ng-show指令来显示所需的选项。

html

 <div ng-controller="MyCtrl">
  <input ng-model="country"/><br>
  <ul>
    <li ng-repeat="c in filteredCountries = (countries | filter:country)">{{c.name}}</li>
    <li ng-show="!filteredCountries.length">Not Found / Other</li> 
  </ul>
</div>

js

function MyCtrl($scope) {
  $scope.countries = [
    {name:'US'},
    {name:'UK'},
    {name:'Brazil'},
    {name:'Chile'},
    {name:'India'}
  ];
}

这是一个正在工作的Plunkr。

最新更新