【问题标题】:filter not working in angularjs for JSON data过滤器在 angularjs 中不适用于 JSON 数据
【发布时间】:2023-03-08 18:51:01
【问题描述】:

我很抱歉,如果事先已经回答了这个问题,我搜索但无法理解其他堆栈溢出的答案,所以如果他们确实有答案,我无法理解它。我正在尝试过滤 ng-repeat 中的 JSON 数据,但每当我在输入中输入内容时,它什么都不会显示。只是一点帮助,即使它只是指向我的方向,将不胜感激。我有一个 jsbin 来显示我在说什么。

http://jsbin.com/ILEQEso/1/edit

【问题讨论】:

    标签: javascript json angularjs filter


    【解决方案1】:

    您可以像这样修改过滤条件:

    ng-repeat="story in storytitle | filter:{'title.$text':searchquery}"
    

    它将仅在 title.$text 属性上查找搜索词。

    不要忘记在控制器的开头将搜索查询设置为空:

    $scope.searchquery = '';
    

    这是您更新的 Jsbin:http://jsbin.com/AQoJEMU/1/edit

    【讨论】:

      【解决方案2】:

      问题在于过滤器无法访问嵌套属性

      无法过滤stories.title.$text

      可能的解决方案:

      • 编写您自己的过滤函数。
      • 以某种方式使要过滤的内容在未嵌套的属性中可用。例如:而不是stories.title.$text,而是提供stories.title_text

      这是一个工作的 JS Bin:http://jsbin.com/esAteYI/2/edit

      我做了两件事:

      1. 创建了一个stories.$text 属性,包括stories.title.$textstories.teaser.$text 的内容。

      2. 您可以指定应将过滤应用于哪个属性。看看我如何将搜索输入字段的ng-model 属性更改为<input ng-model="searchquery.$text" />
        通过指定.$text 属性,过滤器将只对它起作用。因此,尝试通过其他属性应用搜索不会浪费宝贵的时间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-03
        • 1970-01-01
        • 1970-01-01
        • 2015-04-15
        相关资源
        最近更新 更多