有人可以微调我的过滤器吗?我有3个ng-option指令,每个指令都来自前一个。当选择元素返回'一个整数但我现在需要它们绑定到一个对象。
这是我的设置:
formData.divisions = {'Open', 'Mixed'}
formData.teams =
[{
"id": 1,
"division":"Open",
"name":"Team 1"
},{
"id": 2,
"division":"Open",
"name":"Team 2"
},{
"id": 3,
"division":"Mixed",
"name":"Team 3"
}]
<select
ng-model="formData.division"
ng-options="division for division in divisions"></select>
<select
ng-model="formData.team"
ng-options="team as team.name for team in teams track by team.id | filter:{division:formData.division}"></select>
<select
ng-model="formData.opponent"
ng-options="team as team.name for team in teams | filter:formData.division | filter:{team:'!'+formData.team}"></select>
第二和第三选择元素并不完全正确。他们关闭了我确定。
第一个选择只列出分部。
第二选择只想列出所选部门内的团队。
第3选择想要与第2选择相同,但也不会从第2选择显示所选团队。
谢谢!
答案 0 :(得分:0)
所以这很有效。第2和第3选择元素都被第1个过滤。第三个也过滤了第二个中选择的任何内容。
<select
ng-model="formData.division"
ng-options="division for division in divisions"></select>
<select
ng-model="formData.team"
ng-options="team as team.name for team in teams | filter:formData.division | track by team.id"></select>
<select
ng-model="formData.opponent"
ng-options="team as team.name for team in teams | filter:formData.division | filter:{id:'!'+formData.team.id} track by team.id"></select>
作为旁注,可能对其他试图做类似事情的人有所帮助。我想用用户在之前访问时选择的内容预先填充选项。该对象被缓存。帮助我做到这一点的东西也有点令人不安的是“追踪”。这篇文章帮助https://coderwall.com/p/p-glog/angularjs-using-trackby-with-filters-in-an-ng-repeat