Угловой материал Выберите выбранную по умолчанию опцию - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь заставить работать выбранную по умолчанию опцию в моем приложении Angular 7 (Material).

Это модель:

export class Zone extends Resource {
  id: number;
  name: string;
  active: boolean;
  sensor: TemperatureSensor;
}

export class TemperatureSensor extends Resource {
  id: number;
  name: string;
  mqttTopic: string;
  zone: Zone;
}

Данные, полученные из SpringBoot REST .Я использую модуль angular4-hal , чтобы легко создавать сервисы для связи с сервером.

Это код для поля формы:

<mat-form-field>
<select matNativeControl placeholder="Temp. sensor" [(ngModel)]="zone.sensor" name="sensor" [formControl]="sensorControl">
    <option *ngFor="let temperatureSensor of temperatureSensors" [ngValue]="temperatureSensor">
        {{temperatureSensor.name}}
    </option>
</select>
</mat-form-field>

В контроллере Iтакже пытались принудительно установить значение:

sensorControl = new FormControl('');
ngOnInit() {
    this.getTemperatureSensors();
    this.getZone(this.route.params);
}

getZone(theParams: Observable<Params>) {
    theParams.subscribe(params => {
        const id = params.id;
        if (id) {
            this.zoneService.get(id).subscribe((zone: Zone) => {
                if (zone) {
                    this.zone = zone;
                    this.sensorControl.setValue(zone.sensor);
                } else {
                    console.log(`Zone with id '${id}' not found, returning to list`);
                    this.gotoList();
                }
            });
        }
    });
}
getTemperatureSensors() {
    this.temperatureSensorService.getAll().subscribe(temperatureSensors => {
        this.temperatureSensors = temperatureSensors;
    });
}

Нет способа заставить его работать.

Кто-то знает, как этого добиться?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...