如果事先已经回答了这个问题,我深表歉意,但我无法理解其他堆栈溢出的答案,所以如果他们确实有答案,我就无法理解它。我正在尝试过滤 ng-repeat 中的 JSON 数据,但每当我在输入中输入内容时,它什么都不会显示。只是一点帮助,即使它只是指向我的方向,将不胜感激。我有一个 jsbin 显示我在说什么。
问问题
2124 次
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
我做了两件事:
创建了一个
stories.$text
属性,包括两者的内容stories.title.$text
就stories.teaser.$text
可以了。您可以指定应将过滤应用于哪个属性。看看我如何
ng-model
将搜索输入字段的属性更改为<input ng-model="searchquery.$text" />
通过指定.$text
属性,过滤器将只对其起作用。因此,尝试通过其他属性应用搜索不会浪费宝贵的时间。
于 2013-10-08T01:38:50.360 回答