Я получаю данные json из API, в котором содержатся сведения об устройстве.
Я отображаю его в начале ngOnInit () .Тогда у меня есть кнопка на странице
<ion-button expand="block" *ngIf="device$ | async as device" (click)="makeAction(device)">{{decideActionText(device)}}</ion-button>
После того, как я получу устройство, я хочу изменить состояние устройства с помощью кнопки.
Ответ должен быть добавленна страницу вместо этого я получаю undefined
Как я могу работать с одним и тем же Observable в разных местах?Как правильно решить эту ситуацию?
API
https://device18.docs.apiary.io/#
Компонент
private device$: Observable<DeviceDetail>;
ngOnInit() {
const id = this.route.snapshot.paramMap.get('id');
this.device$ = this.deviceService.getDevice(id);
}
makeAction(device: DeviceDetail) {
return this.deviceService.makeAction(device)
... ?
}
Страница
<ion-content *ngIf="device$ | async as device">
<ion-list>
<ion-item>
<ion-label>Status</ion-label>
<ion-text>{{device.status}}</ion-text>
</ion-item>
</ion-list>
<ion-row>
<ion-col class="time" size="auto">
<b>Time</b>
</ion-col>
<ion-col class="time" size="auto" *ngFor="let time of device.values.timeStamp">
{{time | date:'h:mm:ss'}}
</ion-col>
</ion-row>
<ion-row>
<ion-col class="value" size="auto">
<b>Value</b>
</ion-col>
<ion-col class="value" size="auto" *ngFor="let value of device.values.value">
{{value}}
</ion-col>
</ion-row>
Спасибо.