【发布时间】:2023-03-08 18:51:01
【问题描述】:
我很抱歉,如果事先已经回答了这个问题,我搜索但无法理解其他堆栈溢出的答案,所以如果他们确实有答案,我无法理解它。我正在尝试过滤 ng-repeat 中的 JSON 数据,但每当我在输入中输入内容时,它什么都不会显示。只是一点帮助,即使它只是指向我的方向,将不胜感激。我有一个 jsbin 来显示我在说什么。
【问题讨论】:
标签: javascript json angularjs filter
我很抱歉,如果事先已经回答了这个问题,我搜索但无法理解其他堆栈溢出的答案,所以如果他们确实有答案,我无法理解它。我正在尝试过滤 ng-repeat 中的 JSON 数据,但每当我在输入中输入内容时,它什么都不会显示。只是一点帮助,即使它只是指向我的方向,将不胜感激。我有一个 jsbin 来显示我在说什么。
【问题讨论】:
标签: javascript json angularjs filter
您可以像这样修改过滤条件:
ng-repeat="story in storytitle | filter:{'title.$text':searchquery}"
它将仅在 title.$text 属性上查找搜索词。
不要忘记在控制器的开头将搜索查询设置为空:
$scope.searchquery = '';
这是您更新的 Jsbin:http://jsbin.com/AQoJEMU/1/edit
【讨论】:
问题在于过滤器无法访问嵌套属性。
无法过滤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 属性,过滤器将只对它起作用。因此,尝试通过其他属性应用搜索不会浪费宝贵的时间。
【讨论】: