Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-ngOptions条件_Javascript_Html_Angularjs - Fatal编程技术网

Javascript AngularJS-ngOptions条件

Javascript AngularJS-ngOptions条件,javascript,html,angularjs,Javascript,Html,Angularjs,我有一个这样的选择框,基本上它通过一系列的部门来查看哪些项目是可行的父部门 <select class="editSelectBox" ng-model="dept.parentDepartment" ng-options="dept as dept.name for dept in depts track by dept.id" ng-change="dept.parentDepartment" ng-click="$event.stopPropagation()">

我有一个这样的选择框,基本上它通过一系列的部门来查看哪些项目是可行的父部门

<select class="editSelectBox" ng-model="dept.parentDepartment" 
ng-options="dept as dept.name for dept in depts track by dept.id" 
ng-change="dept.parentDepartment" ng-click="$event.stopPropagation()">
    <option value="">None</option>
</select>

没有一个

但是,一个部门不能有自己的家长。是否仍然不显示允许将自身设置为父级的选项?由于它将通过所有部门的数组,因此除非给定条件,否则该选项将存在。

您想在
ng选项中设置一个过滤器。此筛选器应获取您的部门数组,并删除您不需要的部门。因此,您需要将该部门或至少其索引传递给筛选函数

ng-options=".. as ... for .. in depts | filterFunction:dept"

请参见

一种方法是使用在
dept.parentDepartment
的观察者的回调中更新的
depts
数组的过滤版本


为什么不是一个角度过滤器?因为它是在每个摘要循环中计算的。

我似乎无法传入部门,因为传入筛选器函数总是引用自身…您希望筛选部门列表并将一个部门作为参数传递给筛选器。在这种情况下,过滤器中的“dept”与ng-repeat中的“dept”不同。非常感谢您的帮助!我遇到的问题是通过返回部门列表,我仍然在引用整个范围的部门列表。我所做的是创建一个部门的深度副本并返回过滤后的部门!你的建议对我帮助很大!