В классе обслуживания метод должен передавать текущее устройство serialNumber. Используя ngrx, устройство $ может быть подписано, чтобы получить реальное, но это не очень хорошо. Что является лучшей практикой в этой ситуации?
@Injectable()
export class DeviceService {
public device$: Observable<Device>;
public device: Device; // feels 'redundant'
constructor(private http: HttpClient,
private store: Store<DeviceState>,) {
this.device$ = this.store.select(DeviceSelectors.getCurrentDevice);
this.device$.subscribe((device: Device) => {
this.device = device; // feels bad
});
}
regenerate() : Observable<Object> {
if (environment.production) {
const url = `${environment.url}/devices/${this.device.serialNumber}/regenerate`;
return this.http.get(url) as Observable<Object>;
} else {
return of({});
}
}
}