如何在由data-ng-options创建的下拉菜单中设置默认的选定选项

时间:2019-05-07 20:32:46

标签: angularjs angularjs-ng-options

我有一个正在设置的选择下拉菜单,以及通过'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”,则表示我正在设置selectedObject。这不起作用。

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 :(得分:0)

有关更新的代码和新问题,如果您将特定值设置为默认选择值,则无需使用<option value="" translate="PLAYLIST_CREATE_NEW"></option>作为data-ng-options。通过删除选项,它将得到解决。 希望这会有所帮助!