1

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

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

4

2 回答 2

1

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

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

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

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

$scope.searchquery = '';

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

于 2013-10-08T02:27:21.277 回答
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属性,过滤器将只对其起作用。因此,尝试通过其他属性应用搜索不会浪费宝贵的时间。

于 2013-10-08T01:38:50.360 回答