Значение по умолчанию выбрано с помощью ng-repeat

Я пытаюсь выбрать значение по умолчанию с помощью ng-selected, но это не работает.

Мой код

<select 
    id="department" 
    name="department" 
    class="form-control"
    ng-model="editProfilCtrl.infos.department"
    ng-change="editProfilCtrl.findCities()">
        <option 
            ng-repeat="dep in editProfilCtrl.infos.departments" 
            class="text-uppercase" 
            value="{{dep}}"
            ng-selected="{{dep.idDepartment == editProfilCtrl.infos.department}}">
            {{editProfilCtrl.infos.department}} - {{dep.idDepartment}} - {{dep.code}} - {{dep.name}}
        </option>
</select>

В моем выпадающем списке у меня есть такие результаты:

  • (Пусто)
  • 1 - 1 - Code01 - TEST1
  • 1 - 2 - Code02 - TEST2
  • 1 - 3 - Code03 - TEST3
  • ...

Вы можете видеть, что editProfilCtrl.infos.department = 1. Таким образом, обычно он должен быть выбран по умолчанию. Но это пустая строка, которая выбрана:/. У тебя есть идея?

Благодарю.

Изменить: Mac Giver "решение":

<select 
    id="department" 
    name="department" 
    class="form-control"
    ng-model='editProfilCtrl.infos.department' 
    ng-change="editProfilCtrl.findCities()"
    ng-options='dep as dep.code + " - " + dep.name for dep in editProfilCtrl.infos.departments'>
</select>

с в моем контроллере:

self.infos.selectedDepartment = editProfilFormDto.department;
self.infos.departments = editProfilFormDto.departments;
self.infos.department = self.infos.departments[self.infos.selectedDepartment - 1];

2 ответа

Решение

Вы проверили документацию или искали в Google? исходя из того, что я знаю, вы не можете сделать значение по умолчанию, используя этот подход. а также есть специальная директива для эффективного выбора вариантов.

Я новичок, но надеюсь, что помог вам с моим ответом.

использовать ngOptions https://docs.angularjs.org/api/ng/directive/ngOptions

/** 
  somewhere in your controller
*/
    editProfilCtrl.infos.department = editProfilCtrl.infos.departments[0]
  <select 
    id="department" 
    name="department" 
    class="form-control"
    ng-model="editProfilCtrl.infos.department"
    ng-change="editProfilCtrl.findCities()" ng-options="dep.idDepartment+' '+dep.code+' '+dep.name for dep in editProfilCtrl.infos.departments"></select>

Простой способ может быть установить editProfilCtrl.infos.department:

editProfilCtrl.infos.department = editProfilCtrl.infos.departments[0]

в вашем контроллере и не используйте ng-selected

Другие вопросы по тегам