2012-10-12 201 views
2

我的代碼選擇與ng模型是工作正常,除了過濾器的東西。 沒有過濾器,它顯示已經選擇的一個重複的選項.. 所以我想過濾掉已經在下面的代碼中選擇的一個。angularjs用篩選器選擇篩選出已經選擇的選項

但它不工作..我做錯了什麼?請幫忙嗎?

<select ng-model="result.color"> 
<option ng-repeat="codes in obj.codes | filter:!result.color" value="{{codes.code}}">{{codes.code}}</option> 
<option ng-selected>{{result.color}}</option> 
</select> 
+0

'ng-repeat'結尾處的花括號不帶有左大括號。你確定你複製正確的代碼? – Tosh

+0

對不起..當我複製代碼的時候,我的錯誤...它已更新 – MomentH

回答

2

ng-selected接受一個表達式。 這是我會做:

<option ng-repeat="codes in obj.codes" value="{{codes.code}}" ng-selected="result.color == codes.code"> 

== ==編輯

另一個更短的解決辦法是使用ng-options

<select ng-model="result.color" ng-options="c.code for c in obj.codes"></select> 

這裏是小提琴:http://plnkr.co/edit/oIysU5

不知道有關我的小提琴似乎工作的初始值。

+0

代碼正在工作..這幾乎是99%的完美..唯一的事情是最初result.color值在加載頁面時加載..使用回答你的建議是壞了..可能是一些簡單的方法來解決這個問題..任何想法? – MomentH

+0

@我們需要看代碼。但是你可能只需要添加一個$ scope。$ watch('result.color',function(value){/ *在這裏更新你的其他範圍變量* /});儘管沒有看到代碼很難說。 –

+0

不是100%我需要做的,因爲我的代碼有點複雜..但接受的答案..謝謝:) – MomentH