2014-02-10 52 views
1

我有一個選擇框,這樣基本上不用通過有關部門的數組,看看哪些項目是可行的上級部門AngularJS - ngOptions條件

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

但是,一個部門不能有父這本身。無論如何不顯示一個選項,允許它將自己設置爲父項?由於它正在經歷一系列所有部門,所以除非給出條件,否則該選項將在那裏。

回答

0

你想提出一個過濾器在你的ng-options。這個過濾器應該採取你的部門陣容,並刪除你不想要的部門。因此,您將需要通過該部門,或至少它的索引,給您的過濾功能

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

Use filter on ng-options to change the value displayed

+0

我似乎不能在部門傳遞的傳遞到被的filterFunction總是引用到自己... – kotsumu

+0

要過濾的部門名單,並通過一個部門作爲參數傳遞給過濾器。 – NicolasMoise

+0

在這種情況下,您的過濾器中的「部門」與您的ng-repeat中的「部門」不同。 – NicolasMoise

0

一種方法是使用depts陣列中的一個回調更新的過濾版本觀察者dept.parentDepartment

爲什麼不一個角度濾波器?因爲它是在每個摘要循環中進行評估的。