2013-01-24 54 views
2

我試圖在過濾器中使用ng選項,並期望看到的行爲。但是,預期的行爲不是需要的。Angularjs在過濾器中使用ng選項而不從過濾器中刪除選項

做這樣的事情時,什麼是最好的做法:

<div ng-init="blades = [{item:'1', spec:'2'}]"></div> 
<select 
    ng-model="blades" 
    ng-options="blade.spec as blade.spec for blade in blades"> 
    <option>--</option> 
</select> 
<ul> 
    <li ng-repeat="blade in blades">{{blades.item}}</li> 
</ul> 

在這裏,當你過濾,過濾你的價值觀出了選擇列表使之無用的。最佳做法是什麼?

回答

5

我在這個過程中回答了我自己的問題和其他一些問題。這是如何:

<div ng-init="items = [{id:'1', spec:'A'}, {id:'2', spec:'B']"></div> 
<select 
    ng-model="searchSpec" 
    ng-options="item.spec as item.spec for item in items"> 
    <option>--</option> 
</select> 
<ul> 
    <li ng-repeat="item in items | filter:{spec:searchSpec}">{{item.spec}}</li> 
</ul> 
0

Angular有一個內置的方法來做到這一點。使ng-model =「search.spec」和搜索將始終是{spec:(selectedValue)}。這很好,因爲您可以將多個選擇下拉菜單綁定到搜索對象的不同鍵上。

<div ng-init="items = [{id:'1', spec:'A'}, {id:'2', spec:'B']"></div> 
<select 
    ng-model="search.spec" 
    ng-options="item.spec as item.spec for item in items"> 
    <option>--</option> 
</select> 
<ul> 
    <li ng-repeat="item in items | filter:search">{{item.spec}}</li> 
</ul> 
相關問題