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

标签 javascript angularjs

好的,我有这张表,其中在下拉列表中列出了所有员工及其主管。 (下拉列表中的前两个选项始终存在,另一个选项则取决于天气或未在“主管”列中被选为主管)

EmployeeTable

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

在 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/

相关文章:

javascript - ng-enter 不调用任何函数

javascript - 如何确定 jQuery 滚动事件的方向?

c# - 尝试更新记录时出现 AngularJS 错误

angularjs - Angular ui路由器如何等待子状态加载

javascript - 正则表达式替换非数字

javascript - 如何在激活提交按钮之前使用 javascript 正则表达式来匹配字符串

javascript - 在 AngularJS 中使用 DocRaptor 生成 PDF

javascript - 获取另一个js文件中html元素的值

javascript - Bootstrap : show/hide column divs with checkbox and change column span

javascript - html2canvas 插件不捕获图像