【问题标题】:AngularJS - Search Filter nested arrayAngularJS - 搜索过滤器嵌套数组
【发布时间】:2013-10-31 14:35:01
【问题描述】:

AngularJS 新手试图将搜索过滤器限制为一个非常嵌套的数组项。这是我的输出截图:

<div ng-controller="listController">
  <input type="text" ng-model="searchMe" />
  <table class="table">
    <tr>
        <th>Product Name</th>
        <th>Color</th>
        <th>Size</th>
        <th>Features</th>
    </tr>
    <tr ng-repeat="p in prods | filter:searchMe">
        <td>{{p.products.1.ProductName}}</td>
        <td>{{p.products.1.Color}}</td>
        <td>{{p.products.1.Size}}</td>
        <td>
          <ul ng-repeat="feats in p.features">
            <li>{{feats}}</li>
          </ul>
        </td>
    </tr>
  </table>
</div>

正确显示列表中的所有项目,包括附加功能。现在 products 数组中至少还有十几个项目,包括描述、价格等。问题是如果我在框中搜索某些内容,它会搜索整个数组。现在我尝试将搜索输入更改为:

<input type="text" ng-model="search.products.1.ProductName" />
<input type="text" ng-model="search.p.products.1.ProductName" />
<input type="text" ng-model="search.ProductName" />

但是,只要我输入一个字符,一切都会消失。是的,我还取消了搜索过滤器中的“我”(| filter:search)。如何将搜索绑定到嵌套数组中的特定项目?我还需要能够按功能进行搜索,但我希望通过首先解决这个问题,它会引导我找到这些功能。如果这有所不同,我的内容也会被一个 json 文件提取。搜索功能最终也将是复选框,而不是文本输入,但我认为这不重要,我仍然需要针对特定​​项目(名称、颜色、大小等)。

想法/想法/建议?

【问题讨论】:

  • 您可能需要编写自定义过滤器来实现此目的。
  • 应该找到很多关于各种方法的教程
  • 我已经经历了几个,但它们没有解决嵌套项目,至少是我找到的那些。作为一个新手编写自定义过滤器并不是最简单的任务。有没有你推荐的关于如何编写自定义过滤器的教程?

标签: arrays angularjs


【解决方案1】:

我目前的解决方案是重组 json 文件。也许当我对 Angular 的了解有所扩展时,我将能够重新审视。

【讨论】:

    猜你喜欢
    • 2016-10-29
    • 2019-04-14
    • 2020-12-27
    • 2021-09-13
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    • 2017-07-24
    • 2018-12-18
    相关资源
    最近更新 更多