Я пытаюсь заставить работать выбранную по умолчанию опцию в моем приложении 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;
});
}
Нет способа заставить его работать.
Кто-то знает, как этого добиться?
Заранее спасибо!