代码之家  ›  专栏  ›  技术社区  ›  Nevyan Dimitrov Neykov

效果内部的角度信号()

  •  1
  • Nevyan Dimitrov Neykov  · 技术社区  · 10 月前

    在组件中,我访问item_id作为输入参数。 如果构造函数/ngOnInit()effect()中不允许调用toSignal()或.subscribe()来调用服务方法,我可以在哪里调用?

     item_id = input<string>();
    
     constructor() {
        effect(() => {
          const itemId = this.item_id();
          if (itemId !== undefined) {
            this.itemSvc.setItemId(itemId); // setup the observable service with itemId
            this.itemSvc.itemDetails().subscribe({ }) // subscribe to get the data about particular itemId
            });
          }
        });
    
    1 回复  |  直到 10 月前
        1
  •  1
  •   Naren Murali    10 月前

    你可以直接使用 toObservable 为了这个。要转换为可观测值,请使用 switchMap 要切换到您需要的API可观察,这将在信号变化时做出反应。

      item_id = input<string>();
      itemDetails = toObservable(this.item_id).pipe(
        switchMap((itemId: string) => {
          if (itemId !== undefined) {
            this.itemSvc.setItemId(itemId); // setup the observable service with itemId
            return this.itemSvc.itemDetails();
          }
          return of([]);
        })
      );
    
    推荐文章