Angular - Установить начальное значение для опции выбора JSON

0

Я хочу установить начальное значение в опции выбора. Вот мой код:

<select ng-init="blah" ng-options="key as value for (key , value) in cities "ng-model="selectedCity" ng-click="setCity()" class="form-control"></select>

Любое предложение?

  • 1
    selectedCity = 'someValue'
  • 0
    ng-init="selectedCity=initialVal.cities" // initialVal - это значение, которое вы хотите выбрать.
Показать ещё 1 комментарий
Теги:

3 ответа

1
Лучший ответ

Для выбора его в разметке (что не рекомендуется) используйте

<select ng-init="selectedCity='firstCity'" 
    ng-options="key as value for (key , value) in cities"
    ng-model="selectedCity">
</select>

firstCity - это ключ, который вы хотите выбрать по умолчанию.

Допустим, это ваш объект

$scope.cities = {
    firstCity: "NY",
    secondCity: "LA",
    thirdCity: "OT"
  };

РАБОЧАЯ ДЕМО

Для инициализации в использовании контроллера

$scope.selectedCity='firstCity';

Надеюсь, поможет.

  • 2
    Это будет работать, но я действительно думаю, что следует избегать ng-init (и документы Angular рекомендуют инициализировать значения в вашем контроллере, а не использовать его для этой цели тоже ). Использование логики в ваших представлениях делает ваш код более сложным для понимания. Очевидно, что такие вещи - дело вкуса!
  • 1
    Да, @JoeClay. Но автор поста читает, поскольку я хочу установить начальное значение в select-option, поэтому я опубликовал это. Спасибо, кстати. Я тоже редактировал свой пост
Показать ещё 3 комментария
1

В вашем контроллере вам просто нужно инициализировать selectedCity до значения, которое вы хотите использовать по умолчанию.

  • 0
    Я инициализирую selectedCity в моем контроллере, но он все равно не работает: Controller: $ scope.selectedCity = 'NY'; HTML: <select ng-options = "ключ как значение для (ключ, значение) в городах" ng-model = "selectedCity" ng-click = "setCity ()" class = "form-control"> </ select>
0

В контроллере объявите:

 $scope.selectedCity = 'cityName'; // any name you want to initialize with
  • 0
    $scope.cities не является массивом.
  • 0
    Это не работает

Ещё вопросы

Сообщество Overcoder
Наверх
Меню