如何从数组创建下拉列表,排除某个选项 - AngularJs

时间:2016-08-25 13:59:54

标签: javascript angularjs

好的,所以我有这张表,在下拉列表中列出了所有员工及其主管。 (下拉列表中的前两个选项总是在那里,其他是根据天气而不是他们已经被选为主管专栏中的主管)

EmployeeTable

现在我遇到的问题是有人无法被选为他/她自己的主管

在HTML上,只需使用

创建表行
ng-repeat="employeeInfo in employees"

和下拉选择选项像这样加载

ng-options="supervisor.id as (supervisor.name + ' ' + supervisor.lastname + ' ' + supervisor.id) for supervisor in supervisorList"

如何在可用的主管下拉中排除他自己?

1 个答案:

答案 0 :(得分:2)

更新:编辑3是工作解决方案

你应该像这样添加library(magrittr) requireNamespace("dplyr") dplyr::data_frame(id = 1:9, value = 42) %>% dplyr::summarise( dplyr::first(value, order_by = id) )

ng-if

(我想你有一个角度变量ng-repeat="employeeInfo in employees" ng-if="employeeInfo.id!=currentEmployee.id" 可以用来进行这样的检查)

修改

尝试在下拉列表选项<{p>的currentEmployee之后添加此ng-if

ng-options

编辑2

在执行生成下拉列表的ng-options="supervisor.id as (supervisor.name + ' ' + supervisor.lastname + ' ' + supervisor.id) for supervisor in supervisorList" ng-if="employeeInfo.id!=supervisor.id" 之前,执行这段代码

ng-options

然后您可以使用已过滤的列表生成下拉列表

supervisorListCopy = $filter('filter')(supervisorList, function(value, index) {return value.id !== employeeInfo.id;})

编辑3

最简单的方法是将过滤器放在ng-options="supervisor.id as (supervisor.name + ' ' + supervisor.lastname + ' ' + supervisor.id) for supervisor in supervisorListCopy" 旁边,如下所示

ng-options