как получить код продукта из текущего сервиса продукта

Я новичок в spratacus, я хочу получить код продукта в виде скрипта. product $: Observable = this.currentProductService.getProduct (); как получить код продукта? пожалуйста помоги.


person Nagaraju G    schedule 08.12.2020    source источник


Ответы (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