2015-09-03 262 views
0

我有以下代碼:選擇默認選項生成下拉

<select ng-model="sortYear"> 
    <option value="all">All Years</option> 
    <option ng-repeat="article in news | orderObjectBy:'year':true | unique: 'year'" value="{{article.year}}">{{article.year}}</option> 
</select> 

這完美的作品。我甚至得到了sortYear綁定在頁面上的不同點,它連接好,等等。

我的問題是,當我到達頁面,我想默認,預選的選擇是最高的實際年,而不是「所有年份」。我試了幾件事:

1)我在我的控制器中設置$ scope.sortYear。我知道這是設置它,因爲頁面後面的限制sortYear在初始加載時顯示得很好。我嘗試使用ng-init將其明確設置爲一年,並嘗試了ng-init="sortYear = getCurYear()",我在控制器中定義了一個函數getCurYear(並驗證了我實際上正在觸及該函數並設置/返回了我以爲我應該)但是納達。

我錯過了什麼?

+1

你真的應該使用[ngOptions(https://docs.angularjs.org/api/ng/directive/ngOptions),而不是ngRepeat的選擇。 –

+0

所以,在最初的選擇標籤我會有ng-options =「article in news | orderObjectBy:'year':true | unique:'year'」?這會設置我的默認? –

+0

假設你的'sortYear'設置正確,它應該。 –

回答

1

使用ng-value在選項標籤與ng-repeat

<option ng-value="article.year" ng-repeat="article in news | orderObjectBy:'year':true | unique: 'year'">{{article.year}}</option> 
+0

YAY!這個工作!謝謝! –