仅在输入大于 3 个字符时应用过滤器

Cri*_*eza 1 javascript angularjs angularjs-ng-repeat angular-filters

如何仅在输入大于 3(或 N)个字符时应用过滤器来获得 ng-repeat 的结果?

我尝试了以下(过滤器: input.lenght > 3):

<input type="text" ng-model="input" placeholder="Search">

<li ng-repeat="detail in details | filter: input.lenght > 3">
  {{ detail.name }}
</li>
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我怎样才能做我想做的事?问候朋友。

解决方案:

<input type="text" ng-model="input" ng-minlength="3" placeholder="Search">
Run Code Online (Sandbox Code Playgroud)

Sac*_*aka 5

像这样对过滤器使用三元运算

<li ng-repeat="detail in details | filter: (input.length > 3)? input : ''">

angular.module("app",[])
.controller("ctrl",function($scope){

$scope.details = [{"name":"ssss"},{"name":"aaaa"},{"name":"cccc"}]
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
 <input type="text" ng-model="input" placeholder="Search">

<li ng-repeat="detail in details | filter: (input.length > 3)? input : ''">
  {{ detail.name }}
</li>
</div>
Run Code Online (Sandbox Code Playgroud)