Я новичок в spratacus, я хочу получить код продукта в виде скрипта. product $: Observable = this.currentProductService.getProduct (); как получить код продукта? пожалуйста помоги.
как получить код продукта из текущего сервиса продукта
Ответы (1)
Ваш вопрос можно сформулировать более конкретно: Как получить значение из RxJs
потока данных в Angular?
Отвечать:
Это зависит от того, где вы хотите получить доступ к значению:
а) Скорее всего: вы хотите получить его в HTML-шаблоне вашего компонента. Затем используйте Angular async
pipe:
<ng-container *ngIf="product$ | async as product">
<!-- use `product` variable here -->
</ng-container>
б) Или в вашем классе Typescript (компонента или службы). Затем вы можете подписаться на наблюдаемое, чтобы получить значение. Тем не менее, это не рекомендуемый подход, потому что тогда вам нужно вручную удалить подписки во избежание утечек памяти!
ngOnInit() {
this.sub = this.product$.subscribe(product => {
// use `product` variable here
})
}
/*...*/
ngOnDestroy() {
this.sub?.unsubscribe();
}
Ссылки
- RxJs Observables очень эффективны для управления асинхронными push-потоками данных. Команда Angular решила, что RxJs - первоклассный гражданин. Спартак также рекомендует использовать RxJs Observables и реактивный подход. Подробнее читайте здесь: https://angular.io/guide/observables.
- Тем не менее, если вы хотите по возможности избегать наблюдаемых, вам может быть интересна эта статья https://dev.to/angular/how-to-avoid-observables-in-angular-273h
person
Krzysztof Platis
schedule
08.12.2020