好的,我有这张表,其中在下拉列表中列出了所有员工及其主管。 (下拉列表中的前两个选项始终存在,另一个选项则取决于天气或未在“主管”列中被选为主管)
现在我遇到的问题是某人无法被选为他/她自己的主管
在 HTML 上,表行只需使用
创建ng-repeat="employeeInfo in employees"
下拉选择选项的加载方式如下
ng-options="supervisor.id as (supervisor.name + ' ' + supervisor.lastname + ' ' + supervisor.id) for supervisor in supervisorList"
如何在可用主管的下拉列表中排除此人本人?
最佳答案
更新:EDIT 3 是可行的解决方案
你应该添加一个像这样的ng-if
ng-repeat="employeeInfo in employees" ng-if="employeeInfo.id!=currentEmployee.id"
(我想你有一个 Angular 变量currentEmployee
,你可以使用它来进行这样的检查)
编辑
尝试在下拉选择的ng-options
之后添加此ng-if
ng-options="supervisor.id as (supervisor.name + ' ' + supervisor.lastname + ' ' + supervisor.id) for supervisor in supervisorList" ng-if="employeeInfo.id!=supervisor.id"
编辑2
在执行生成下拉菜单的ng-options
之前,执行这段代码
supervisorListCopy = $filter('filter')(supervisorList, function(value, index) {return value.id !== employeeInfo.id;})
然后您可以使用过滤列表生成下拉列表
ng-options="supervisor.id as (supervisor.name + ' ' + supervisor.lastname + ' ' + supervisor.id) for supervisor in supervisorListCopy"
编辑3
最简单的方法是在 ng-options
旁边应用过滤器,如下所示
ng-options="supervisor.id as (supervisor.name + ' ' + supervisor.lastname + ' ' + supervisor.id) for supervisor in supervisorListCopy | filter: '!' + employeeInfo.id"
关于javascript - 如何从数组创建下拉列表,排除某个选项 - AngularJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39147386/