2015-09-03 263 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!这个工作!谢谢! –