0

我有一个使用 $resource 的 People 服务,我使用 People.query() 从 PeopleCtrl 调用它以从 json api 获取用户列表。数据返回如下:

[
  {
    "usr_id" : "1"
    "first_name" : "lucky"
    "awesome" : "true"
  },
  {
    "usr_id" : "6"
    "first_name" : "Adolf"
    "awesome" : "false"
  }
]

在我的 html 中,我想使用 ng-repeat,并使用该数据进行过滤。这个想法是我有一个用户列表,我想从输入字段中过滤它们。我可以得到基本的工作,但只要我输入“k”,它就会显示所有结果,而不仅仅是那些带有字母“k”的结果。这就是我所拥有的:

  <div id="section-body" ng-controller="PeopleSearchCtrl">

    <input type="text" ng-model="search.first_name" placeholder="Search Your Name">

    <center>
      <table ng-show="(filteredData = (People | filter:search)) && search.first_name && search.first_name.length >= 1">
        <tr ng-repeat="per in filteredData" ng-click="search.first_name = per.first_name + ' ' + per.last_name">
          <td>{{per.per_id}}</td>
          <td>{{per.first_name + " " + per.last_name}}</td>
        </tr>
      </table>
    </center>
    <button class="btn btn-large btn-primary" type="button">Submit</button>

  </div>

但是一旦我尝试输入输入,它就会显示所有用户。键入第二个字母,无变化,键入第三个字母,只显示匹配的记录。删除字符直到只剩下'k',没有记录显示。所以我想知道我怎么做错了。'People' 变量分配给范围,并且是用户的结果数据数组。

4

1 回答 1

4

这是它的工作原理。一旦你弄清楚了,这很容易。

<input ng-model="query">

<table id="productList" ng-show="(products|filter:query).length">
  <tr ng-repeat="product in products|filter:{username:query}">
...
于 2013-09-19T04:36:12.353 回答