过滤器无法在angularjs中使用JSON数据

时间:2013-10-08 00:47:45

标签: javascript json angularjs filter

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

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

2 个答案:

答案 0 :(得分:1)

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

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

它将在标题上查找搜索词。$ text属性。

不要忘记在控制器的开头将searchquery设置为空:

$scope.searchquery = '';

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

答案 1 :(得分:0)

问题是过滤器无法达到嵌套属性

无法过滤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属性,过滤器仅适用于它。因此,尝试通过其他属性应用搜索不会浪费宝贵的时间。