【发布时间】:2016-01-04 01:42:16
【问题描述】:
我有一些使用 ng-repeat 输出的 json 数据,并且我添加了一些表单控件来过滤来自另一个 json 的数据输出。
简化示例
第一个 JSON 数据:
var technologies = [
{"id":"5", "slug":"mysql", "label":"MySQL", "category":"database"},
{"id":"4", "slug":"html", "label":"HTML", "category":"markup"}
]
和输出:
<ul>
<li ng-repeat="tech in technologies">
<span>{{tech.label}}</span>
<span><label>required expertise
<select>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select></label>
</span>
</li>
</ul>
(实际上,此时技术已经从用户在不同页面上做出的另一个选择中过滤掉了,但我认为这没有区别)
第二个 json 包含我想用作过滤器的专业知识属性
var people = [
{
'label': 'MySQL',
'slug': 'mysql',
'talents':[
{
'name': 'Stanislav Lem',
'expertise': 5,
'desire': 0,
'last_used': '2009-01'
},
{
'name': 'Ijon Tichy',
'expertise': 1,
'desire': 5,
'last_used': '2011-06'
}
]
}, ...
]
...现在只是简单地用作
<ul>
<li ng-repeat="item in people">
{{item.label}}<br>
<ul>
<li ng-repeat="person in item.talents">{{person.name}} · Expertise: {{person.expertise}}</li>
</ul>
</li>
</ul>
我需要的是一个过滤器,它使用第一个输出中的选项来过滤第二个输出。例如,当 MySQL 所需的专业知识设置为“2”时,将仅显示 Stanislav Lem。实际上,如果没有人符合专业知识,我还需要一条“未找到结果”消息,但我想我可以自己解决这个问题。
Plunker 示例在这里:http://plnkr.co/edit/B0aQp9aCJ2g4OM6fZ3qe?p=preview
【问题讨论】:
-
这听起来更像是一个规范,而不是对合法代码问题的帮助。应该展示你尝试过的东西,或者看起来你是在要求别人为你做你的工作
标签: javascript json angularjs ng-repeat angularjs-filter