Angular cdkScrollable ViewChild 未定义

Angular cdkScrollable ViewChild is undefined

感谢 cdkScrollable,我正在尝试监听模板元素上的滚动事件。

打字稿:

@ViewChild(CdkScrollable, {static: false})
public scrollable: CdkScrollable;

...

public ngAfterViewInit() {
  this.scrollable.subscribe(this.scrollDetected)
}

模板:

<pre
  cdk-scrollable
  #fareNotes
  [innerHTML]="changeFareNotes">
</pre>

但是,this.scrollable 始终未定义。

如果我尝试如下定义 ViewChild,它存在,但只获取 ElementRef 类型(只有 nativeElement 属性 但没有 scrollable() 方法)。

 @ViewChild('fareNotes', {static: false})
 public fareNotes: CdkScrollable;

所以:

  1. 我的模块声明中缺少 ScrollingModule(我的脚本中只有 CdkScrollable 导入)。我本以为会因为错过这种类型的东西而出错。
  2. 然后,它是:
    • 通用 CdkScrollable ViewChild:
      @ViewChild(CdkScrollable, {static: false}) public 可滚动:CdkScrollable;
    • 或此语法通过选择器访问:
      @ViewChild('fareNotes', {读: CdkScrollable}) public fareNotes:CdkScrollable;

感谢 David Fontes 和 andreivictor 提供的有用评论。