【问题标题】:Angular ng-repeat filterAngular ng-repeat 过滤器
【发布时间】:2015-07-17 12:17:34
【问题描述】:

我正在尝试根据输入文本过滤我的表格数据,但有些无法正常工作。请帮忙。

  <div class="panel panel-default">
   <div class="panel-heading">search
    <input type="text" ng-model="search_text">
    Searching for :: {{search_text}}
   </div>  
  <Table>   
  <table class="table table-hover table-bordered">
    <tr>
        <td>Item ID</td>
        <td>Quantity</td>       
    </tr>
    <tr ng-repeat="item in items | filter:search_text">
        <td>{{item.item[0] }}</td>
        <td>{{item.item[1] }}</td>
    </tr>
 </table>
 </div>

【问题讨论】:

  • 你能告诉我们物品(物品)吗,,
  • 请向我们展示您的数据的结构。
  • 控制台有什么错误吗?您的代码似乎是正确的
  • 已在上面添加了我的数据结构(使用 firebase),并且控制台中没有错误
  • 什么是“不工作”?

标签: angularjs angularjs-ng-repeat angular-filters


【解决方案1】:

请检查您正在使用的 angularjs 版本或控制台中的任何错误。

您的代码似乎有效并且确实是正确的。

  //array of items containing itemID and its quantity
  $scope.items = [{
                    item:['chair',45]
                  },
                  {
                    item:['bed',23]
                  },
                  {
                    item:['laptop',8]
                  }]

这是工作的plunkr

表格数据确实根据您在文本框中输入的值进行过滤

【讨论】:

    【解决方案2】:

    从 Angular 1.1.3 开始,您可以使用:

    <tr ng-repeat="item in items | filter:{item[0]: search_text}">
    

    这会将它与对象中的对象属性 item[0] 进行比较。 如果您想要完全匹配,您可以通过添加以下内容将过滤设置为 true:

    <tr ng-repeat="item in items | filter:{item[0]: search_text}:true">
    

    【讨论】:

    • 实际上,当我将 Angular 版本从 1.3 更新到 1.4.3 版本时,它会抛出错误为“错误:[filter:notarray] Expected array but received: {"-JuQxmosAMBeQitsYevP":{"item": ["椅子","5"]},"-JuQxoG04-WFcrLR5D6G":{"item":["床","10"]},"-JuQxrGLi8O8vZjyQ87O":{"item":["笔记本电脑"," 2"]},"$id":"items","$priority":null}" ... 那么如何将我的数据保存为 firebase 中的数组?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 2017-06-11
    相关资源
    最近更新 更多