输入字段过滤器在AngularJS中不起作用

时间:2015-11-29 10:31:45

标签: javascript html arrays angularjs html5

我已在this fiddle成功实施几乎所有类型的过滤器:

<div data-ng-app='' data-ng-init="vehicles=[
                   {type:'car',color:'red'},
                   {type:'bike',color:'black'}]">
  <h1>
        AngularJS <a href='http://www.w3schools.com/angular/angular_filters.asp'>
        Filters Example</a>
    </h1>

  <p>Enter text
    <input type='text' data-ng-model='abc' />
  </p>
  <p>The text you entered is
    <br/> <a href='http://www.w3schools.com/angular/tryit.asp?filename=try_ng_filters_uppercase'>Upper case</a> {{ abc | uppercase }}
    <br/><a href='http://www.w3schools.com/angular/tryit.asp?filename=try_ng_filters_lowercase'>Lower case</a> {{ abc | lowercase }}</p>Enter amount
  <input type='number' data-ng-model='num1' />
  <p>The <a href='http://www.w3schools.com/angular/tryit.asp?filename=try_ng_filters_currency'>amount</a> you entered is
    <br/>{{ num1 | currency }}</p> <a href='http://www.w3schools.com/angular/tryit.asp?filename=try_ng_filters_orderby'> Directives Filter example</a>

  <br/>Vehicles filtered by type:
  <ul data-ng-repeat="v in vehicles | orderBy:'type'">
    <li>{{"Vehicle type is "+v.type +" with color "+ v.color}}</li>
  </ul>
  <br/>Vehicles <a href='http://www.w3schools.com/angular/tryit.asp?filename=try_ng_filters_input'>filtered by user input:</a>

  <br/>
  <input type="text" ng-model='test' />
  <ul data-ng-repeat="v in vehicles | filter: 'test' | orderBy:'type'">
    <li>{{"Vehicle type is "+v.type +" with color "+ v.color}}</li>
  </ul>
</div>

input filters外,一切正常。

这就是我现在seeing的方式:

no output

  

为什么数组未按用户输入打印和过滤?

1 个答案:

答案 0 :(得分:2)

从传递给过滤器的'test'中删除单引号。因为它不是字符串,所以它是一个模型,它应该直接传递给过滤器。

<ul data-ng-repeat="v in vehicles | filter: test | orderBy:'type'">
    <li>{{"Vehicle type is "+v.type +" with color "+ v.color}}</li>
</ul>

以上代码可以使用。