угловой 2 - как установить <select> выбранная по умолчанию опция

Мой шаблон похож на этот

<select>
  <option>AM</option>
  <option>PM</option>
</select>

Как установить параметр AM по умолчанию?

Ответ 1

Старый чистый способ HTML просто работает с Angular2, если вы не хотите ничего динамически делать:

<select>
  <option selected>AM</option>
  <option>PM</option>
</select>

Но следующим является способ Angular 2, который позволяет динамически назначать выбранное значение, которое может быть практическим и распространенным случаем использования: (вам нужно импортировать FormsModule)

<select [(ngModel)]='selectedValue'>
  <option value='AM'>AM</option>
  <option value='PM'>PM</option>
</select>

и в вашем классе компонентов

selectedValue = 'AM'; // You may assign 'AM or 'PM' dynamically here

Полезны следующие ссылки:

https://angular.io/api/forms/NgSelectOption

https://angular.io/api/forms/NgModel

Вышеупомянутый метод Углового 2 представляет собой метод с шаблонами. Существует еще один способ сделать то же самое, что и подход реактивных форм, описанный ниже: (вам нужно импортировать ReactiveFormsModule)

<select [formControl]='control'>
  <option>AM</option>
  <option>PM</option>
  </select> 

и в вашем классе компонентов

control = new FormControl('AM');

Может оказаться полезной следующая ссылка:

https://angular.io/api/forms/FormControlDirective

Ответ 2

<select [(ngModel)]="defaultValue">
  <option>AM</option>
  <option>PM</option>
</select>
export class MyComponent {
  defaultValue = 'PM';
}

Обычно это делается как

<select [(ngModel)]="defaultValue">
  <option *ngFor="let value of values" [ngValue]="value">{{value}}</option>
</select>

export class MyComponent {
  values = ['AM', 'PM'];
  defaultValue = this.values[1];
}

Подсказка Для нестрочных значений используйте '[ngValue] = "..."

<select [(ngModel)]="defaultValue">
  <option [ngValue]="values[0]">AM</option>
  <option [ngValue]="values[2]">PM</option>
</select>

Ответ 3

Для формы с шаблоном я сделал это и получил выбор по умолчанию.

<select [(ngModel)]="defaultOption" name="identification">
                <option [value]=null>Select</option>
                <option *ngFor="let option of identification" [value]="option.id"> {{ option.name }} </option>
              </select>

и в файле component.ts,

   identification = [
    { id: 1, name: 'Passport'},
    { id: 2, name: 'Adhaar'},
    { id: 3, name: 'Driver\ license'},
    ];
    defaultOption = null;

При загрузке мы могли бы выбрать Select по умолчанию.

Ответ 4

Я не знаю, почему здесь так много длинных ответов.

Краткий ответ:

используйте [selected] = "isSelected" в вашем теге option!

Решение:

<select>
  <option [selected]="isSelected">AM</option>
  <option>PM</option>
</select>

Источник:

https://medium.com/@phismonster/set-default-value-for-select-in-angular-2-27f0da413935

Изменить 1: Пример с массивом:

arr = [{str: 'A', isSelected: false},
{str: 'B', isSelected: true},
{str: 'C', isSelected: false},
{str: 'D', isSelected: false},
];

<select>
    <option *ngFor="let a of arr" value="a.str" [selected]="a.isSelected">{{a.str}}</option>
</select>

ссылка с рабочим примером: https://stackblitz.com/edit/selected-test

Ответ 5

В файле шаблона:

 <select name="AMPMTime" [(ngModel)]="aMPMTime.time" #aMPMTime="ngModel">
      <option [ngValue]="0">AM</option>
      <option [ngValue]="1">PM</option>
 </select>

В файле Component.ts:

ngOnInit() {
    this.aMPMTime.time= 0;
}

И выбор элемента управления будет по умолчанию выбрать в "AM".

Ответ 6

Должен работать, попробуйте это

<select>
  <option [selected]='a=="None"'>None</option>
  <option [selected]='a=="AM"'>AM</option>
  <option [selected]='a=="PM"'>PM</option>
</select>

//in .ts file
a='PM'

Этот метод более выгоден в том случае, если вы определяете свои параметры с помощью цикла ie *ngFor, вам просто нужно добавить атрибут [selected] и связать значение в своем классе

PS: этот метод эффективен как в статическом, так и в динамическом привязке.

Ответ 7

        <select>
            <option [ngValue]="null">All</option>
            <option *ngFor="let oneItem of items" [ngValue]="oneItem.id">
               {{oneItem.description}}
            </option>
        </select>

Просто добавьте опцию в список. Это сработало для меня в Angular 4.

Ответ 8

Мой NgModel был назначен массиву, и я не мог установить значение по умолчанию для каждого элемента массива. По умолчанию значения не определены, поэтому вы можете установить для него значение по умолчанию.

export class MyComponent {
  someList:Array<any> = ['apples','banana','oranges'];
  myModel: Array<any> = [];
}


<div *ngFor="let list of someList; let i = index;">
  <select  [(ngModel)]="myModel[i]" class="form-control">
    <option [value]="undefined">DEFAULT</option>
    <option [value]="'a'">A</option>
    <option [value]="'b'">B</option>
  </select>
 </div>

Ответ 9

/** All includes */

@Component({
              selector: 'app-select',
              template: '

          <form [formGroup]="select_form">

              <select *ngFor="let item of select_options" 
               formControlName="select_control">
                 <option value=="-1">Select one option ... </option>
                 <option value="{{item.id}}">{{item.text}}</option>
              </select>

              <button type="button" (click)="setActive("-1")"></button>

          </form>
              '
})

    export class SelectComponent extends OnInit{
        private select_form: FormGroup;
            select_options: any[] = 
            [{id: 1, text: "Text 1", id: 2,  text: "Text 2"}];

        constructor(private builder: FormBuilder){

        }

        ngOnInit(){
          this.init();
        }

        init(){
          this.select_form= this.builder.group({
             select_control: new FormControl("1", [/** Validation */])
          });
        }

        setActive(active_value: string){
           this.select_form.get('select_control').patchValue(active_value);
        }
    }

Ответ 10

<select [(ngModel)]="selectedValue">
  <option value="selectOptions" disabled="disabled">---Select Options---</option>
  <option *ngFor="let somevalue of somevalues" [value]="somevalue">{{somevalue}}</option>
</select>

export class MyComponent {
  ngOnInit() {
   somevalues= ['abc', 'def','ghi'];
   selectedValue= "selectOptions";
  }
  someFunction() {
     // process selected option 
     var selection = selectedValue;
     :
     :
     //reset selectedValue to "--Select Options--"
     selectedValue = "selectOptions";
  }

}

Ответ 11

options = [
  {
    name : 'Option A',
    value : 1
  },
  {
    name : 'Option B',
    value : 2
  },
  {
    name : 'Option C',
    value : 3
  }
];
placeHolder = 'select option';

<div>
  <label>Label:</label>
  <select>

    <option [value]="null" ngValue="null" hidden>{{placeHolder}}</option>
    <option *ngFor="let option of options"
            [ngValue]="option.value">{{option.name]}}
    </option>
  </select>
</div>

Ответ 12

сюда:

<select [(ngModel)]="Value">
  <option disabled selected value="">AM</option>
  <option >PM</option>
</select>