我正在尝试通过angular的ng-repeat
在选择框中显示年份列表,但它在年份列表之前显示空行,而不显示应该在列表中第一年的选定值。您可以在代码示例中看到。任何帮助将不胜感激。
angular.module('F1FeederApp', ['F1FeederApp.controllers']);
angular.module('F1FeederApp.controllers', []).
/* Drivers controller */
controller('driversController', function($scope) {
$scope.years = getYearRange();
});
/* Year Range Code */
function getYearRange() {
var startYear = new Date().getFullYear();
var endYear = 2005;
var dateRange = [];
while(endYear <= startYear) {
dateRange.push(startYear);
startYear -= 1
}
return dateRange;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script>
<div ng-app="F1FeederApp">
<div ng-controller="driversController">
<select ng-model="F1s_Selection" class="btn btn-default">
<option ng-repeat="year in years">{{year}}</option>
</select>
</div>
</div>
最佳答案
使用ng-options
代替ng-repeat
可以,效果更好。
angular.module('F1FeederApp', ['F1FeederApp.controllers']);
angular.module('F1FeederApp.controllers', []).
/* Drivers controller */
controller('driversController', function($scope) {
$scope.years = getYearRange();
});
/* Year Range Code */
function getYearRange() {
var startYear = new Date().getFullYear();
var endYear = 2005;
var dateRange = [];
while(endYear <= startYear) {
dateRange.push(startYear);
startYear -= 1
}
return dateRange;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script>
<div ng-app="F1FeederApp">
<div ng-controller="driversController">
<select ng-model="F1s_Selection" ng-options="year as year for year in years | orderBy:year track by years " class="btn btn-default">
</select>
</div>
</div>