Как установить выбранную по умолчанию опцию в выпадающем списке, создаваемом data-ng-options - PullRequest
0 голосов
/ 07 мая 2019

У меня есть раскрывающийся список выбора, который настраивается, и параметры, созданные с помощью 'data-ng-options'

Это HTML:

<select class="form-control" id="playListOpt" ng-model="playListItem.selectedObject" ng-change="changePlaylist(playListItem.selectedObject)" ng-required="true"
              data-ng-options="playListItem as playListItem.name for playListItem in playListDataForActivity">
        <option value="" translate="PLAYLIST_CREATE_NEW"></option>
      </select>

Это приводит к следующему выводу вскомпилированный html:

<select class="form-control ng-pristine ng-valid ng-valid-required ng-touched" id="playListOpt" ng-model="playListItem.selectedObject" ng-change="changePlaylist(playListItem.selectedObject)" ng-required="true" data-ng-options="playListItem as playListItem.name for playListItem in playListDataForActivity" required="required" aria-required="false" aria-invalid="false" style=""><option value="" translate="PLAYLIST_CREATE_NEW" class="" selected="selected">Create New Playlist</option><option label="Dev Playlist 1" value="object:2670">Dev Playlist 1</option><option label="Dev Playlist 2 (Favorite)" value="object:2671">Dev Playlist 2 (Favorite)</option></select>

В настоящее время опция «Создать новый плейлист» всегда выбрана.Тем не менее, я хотел бы установить выбранную опцию на «isDefault», доступную мне через playListItem.Я чувствую, что моя проблема не в понимании того, как установить selectedObject, так как значение параметра, похоже, генерируется кодом?

Это код в контроллере, где, если для элемента установлено значение 'isDefault'что я устанавливаю выбранный объект.Это не работает.

if (response && response.status == 200) {
              $scope.playListDataForActivity = response.data.playlists;
              $scope.totalOwnedPlaylistCount = response.data.totalOwnedPlaylistCount;

              for (var i = 0; $scope.playListDataForActivity[i]; i++) {
                if ($scope.playListDataForActivity[i].isDefault)
                  $scope.playListItem.selectedObject = $scope.playListDataForActivity[i];
                }
          }

Любые советы о том, что мне нужно сделать, чтобы это исправить?

Обновлен код выше и новый вопрос ниже

После изменения, предложенного @Lex ниже, и «Создать новый список воспроизведения», и параметр IsDefault помечаются как выбранные в HTML

<select class="form-control ng-pristine ng-valid ng-valid-required ng-touched" id="playListOpt" ng-model="playListItem.selectedObject" ng-change="changePlaylist(playListItem.selectedObject)" ng-required="true" data-ng-options="playListItem as playListItem.name for playListItem in playListDataForActivity" required="required" aria-required="false" aria-invalid="false" style=""><option value="" translate="PLAYLIST_CREATE_NEW" class="" *selected="selected"*>Create New Playlist</option><option label="Dev Playlist 1" value="object:2996">Dev Playlist 1</option><option label="Dev Playlist 2 (Favorite)" value="object:2995" *selected="selected"*>Dev Playlist 2 (Favorite)</option><option label="Dev Playlist 3" value="object:2997">Dev Playlist 3</option></select>

Есть ли что-то, что мне нужно очистить, или есть что-тов 'выберите', который должен быть добавлен?

1 Ответ

0 голосов
/ 09 мая 2019

для обновленного кода и нового вопроса. Если в качестве выбранного значения по умолчанию задано определенное значение, тогда нет необходимости использовать <option value="" translate="PLAYLIST_CREATE_NEW"></option> в качестве data-ng-options.Удалив опцию, она будет решена.Надеюсь, это поможет!

...