Использование [(ngModel)] и наличие пустого элемента select

Я использую [(ngModel)] top bind различных входных данных и выбираю элементы в моем угловом приложении. Я также использую сервис с ngModel. При использовании элемента select мое приложение показывает пустую опцию.

Даже если я изменю значение первой опции на что-то отличное от пустой строки, возникнет та же проблема.

<div>
  <input 
    placeholder="Ohio Volume"
    type="number"
    class="text-input"
    value="{{ this.inputsService.ohioVolume }}"
    [(ngModel)]="ohioVolume"
    (change)="this.inputsService.setOhioVolume(ohioVolume)"
  >
</div>
<div>
  <select
    class="select" 
    value="{{ this.inputsService.ohioReporter }}"
    [(ngModel)]="ohioReporter"
    (change)="this.inputsService.setOhioReporter(ohioReporter)">
    <option value="">Ohio Reporter</option>
    <option value="Ohio St.3d">Ohio St.3d</option>
    <option value="Ohio St.2d">Ohio St.2d</option>
    <option value="Ohio St.">Ohio St.</option>
  </select>
</div>

Мой машинописный файл inputService показан в соответствующей части:

ohioReporter: string

setOhioReporter(ohioReporter) {
    this.ohioReporter = ohioReporter
}

Код ввода работает должным образом, но выбор показывает пустое поле независимо от значения первого параметра. Я бы предпочел, чтобы решение оставалось только в HTML-коде и не требовало никакого машинописного кода.

2 ответа

Вам нужно изменить свой код следующим образом:

 <select
    class="select" 
    value="{{ this.inputsService.ohioReporter }}"
formControlName="name" [ngModel]="ohioReporter" name="ohioReporter" (ngModelChange)="ohioReporter($event)">
    <option value="">Ohio Reporter</option>
    <option value="Ohio St.3d">Ohio St.3d</option>
    <option value="Ohio St.2d">Ohio St.2d</option>
    <option value="Ohio St.">Ohio St.</option>
  </select>

.ts стал:

@Output() ohioReporter: number;

....
  ohioReporter(ohioReporter) {

    this.ohioReporter= ohioReporter;
}

Попробуйте с этим в вашей TS /Service, может быть, потому что он не определен по умолчанию

   ohioReporter: string = ""
Другие вопросы по тегам