@slip31

Как сделать массив в option на angular.js?

Что то я плохо гуглю сегодня
Мне надо, чтобы в select выдавались даты с 1950 по настоящий год. Естественно, не из
{value: 1, text: '1950'},
{value: 2, text: '1951'},
{value: 3, text: '1952'}
];, а каким-нибудь циклом в function
$scope.showYear = function() {
var selected = $filter('filter')({value: $scope.form.year});
return какой-то цикл ? selected[0].text : 'empty';
};
Как мне сделать это, учитывая, что последний год - должен быть настоящим? Спасибо
  • Вопрос задан
  • 2538 просмотров
Решения вопроса 1
Rainum
@Rainum
Вопрос ясен, код примера не очень. Зачем объект с индексом для года? Не проще ли в value для option хранить год, а не его индекс?

У меня получился следующий код:

Контроллер:

function listYears(startYear) {
  var currentYear = new Date().getFullYear();
  var years = [];
  startYear = startYear || 1980;

  while (startYear <= currentYear) {
    years.push(startYear++);
  }

  return years;
}

$scope.years = listYears(1950);


Шаблон:

<select>
  <option ng-repeat="year in years" value="{{ $index }}">{{ year }}</option>
</select>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Дополню @Rainum:
<select ng-options="year for year in years"></select>
Ответ написан
Комментировать
@slip31 Автор вопроса
Да, спасибо. Все отлично. (код был старый от xeditable, просто воткнул туда) . Конечно. в value нужен год.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы