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;
所以:
- 我的模块声明中缺少 ScrollingModule(我的脚本中只有 CdkScrollable 导入)。我本以为会因为错过这种类型的东西而出错。
- 然后,它是:
- 通用 CdkScrollable ViewChild:
@ViewChild(CdkScrollable, {static: false}) public 可滚动:CdkScrollable;
- 或此语法通过选择器访问:
@ViewChild('fareNotes', {读: CdkScrollable}) public fareNotes:CdkScrollable;
感谢 David Fontes 和 andreivictor 提供的有用评论。
感谢 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;
所以:
- 我的模块声明中缺少 ScrollingModule(我的脚本中只有 CdkScrollable 导入)。我本以为会因为错过这种类型的东西而出错。
- 然后,它是:
- 通用 CdkScrollable ViewChild:
@ViewChild(CdkScrollable, {static: false}) public 可滚动:CdkScrollable; - 或此语法通过选择器访问:
@ViewChild('fareNotes', {读: CdkScrollable}) public fareNotes:CdkScrollable;
- 通用 CdkScrollable ViewChild:
感谢 David Fontes 和 andreivictor 提供的有用评论。