Angular - QueryList.changes 但使用信号(怎么做?)

问题描述 投票:0回答:1

这两个是等价的(我相信):

    @ViewChildren(RoundedContainerComponent) roundedContainers!: QueryList<RoundedContainerComponent>;
    private rounded = toObservable(contentChildren(RoundedContainerComponent))

我可以调用查询列表进行更改

this.roundedContainers.changes
  .pipe(
    takeUntilDestroyed(this.destroyRef),
  )
  .subscribe(t => {
  this.scrollToContainer('-86.0px')
})

我怎样才能对 this.rounded (这应该是一个可观察的)做同样的事情。 “更改”不可访问,只能通过管道和订阅。

这在初始化时不起作用

this.rounded
  .pipe(
    takeUntilDestroyed(this.destroyRef),
  )
  .subscribe(t => {
    this.scrollToContainer('-86.0px')
  })
angular signals
1个回答
0
投票

为什么不尝试使用 viewchildren 信号呢

roundedContainers = viewChildren<RoundedContainerComponent>(
RoundedContainerComponent); 
private rounded$ = toObservable(this.roundedContainers);

然后就可以直接订阅更改了

this.rounded$
  .pipe(
    takeUntilDestroyed(this.destroyRef),
  )
  .subscribe(t => {
  this.scrollToContainer('-86.0px')
})
© www.soinside.com 2019 - 2024. All rights reserved.