Javascript 根据循环中的选定项筛选选择列表项
我在一个表上有一个ngRepeat指令,它循环遍历一些项,每个项都有一个Name字段 我在这个循环的一个表单元格中有一个选择列表,该选择列表有一个名称列表 示例父列表(SelectedPeople):{“Name”:“asdfasdfasdf”} 每个选择列表(人):[{“姓名”:“约翰·史密斯”},{“姓名”:“简·史密斯” },{“姓名”:“比尔·盖茨”},{“姓名”:“asdfasdfasdf”}]Javascript 根据循环中的选定项筛选选择列表项,javascript,html,angularjs,angularjs-ng-repeat,Javascript,Html,Angularjs,Angularjs Ng Repeat,我在一个表上有一个ngRepeat指令,它循环遍历一些项,每个项都有一个Name字段 我在这个循环的一个表单元格中有一个选择列表,该选择列表有一个名称列表 示例父列表(SelectedPeople):{“Name”:“asdfasdfasdf”} 每个选择列表(人):[{“姓名”:“约翰·史密斯”},{“姓名”:“简·史密斯” },{“姓名”:“比尔·盖茨”},{“姓名”:“asdfasdfasdf”}] (忽略上面json中的语法错误,这只是一个示例) 如何筛选选择列表,使其不添加表中已选
(忽略上面json中的语法错误,这只是一个示例)
如何筛选选择列表,使其不添加表中已选择的项目
示例:(下图中)选择列表中不应出现“asdfasdfasdf”项
我只是不知道如何编写这个过滤器。任何帮助都将不胜感激,我希望这是有意义的。:)
提前谢谢 像这样的方法应该会奏效:
$scope.inListFilter = function(person) {
return (SelectedPeople.indexOf(person) !== -1);
}
然后是html:
<select ng-model="selectedPeople.SelectedPeople.Name" ng-options="person.Name as person.Name for person in People | filter:inListFilter"></select>
将对象传递给filter函数,然后对其运行测试,并根据是否要将其过滤掉返回true或false。这将检查它是否在列表中,如果在列表中则返回false,从而过滤掉它
<select ng-model="selectedPeople.SelectedPeople.Name" ng-options="person.Name as person.Name for person in People | filter:inListFilter"></select>