Angular 如何在组件TS代码中使用API
在Angular Materials文档中,有一个API,它提供了与该组件相关的有用函数,例如 有没有办法在组件类型脚本代码中获取该对象?例如,在我的组件中,假设我想要收听selectChange事件。 我尝试了以下代码,但它说myOptionId不存在于myComponent类型上 .htmlAngular 如何在组件TS代码中使用API,angular,angular-material,Angular,Angular Material,在Angular Materials文档中,有一个API,它提供了与该组件相关的有用函数,例如 有没有办法在组件类型脚本代码中获取该对象?例如,在我的组件中,假设我想要收听selectChange事件。 我尝试了以下代码,但它说myOptionId不存在于myComponent类型上 .html <mat-selection-list> <mat-list-option *ngFor="let item of list" #myOptionID>
<mat-selection-list>
<mat-list-option *ngFor="let item of list" #myOptionID>
{{item.id}}
</mat-list-option>
</mat-selection-list>
但我还想根据后端的逻辑更改所选选项,因此我想访问组件代码中的整个对象
// grab the MatListOption instances..
@ViewChildren(MatListOption) options: QueryList<MatListOption>;
A为您提供一个我可以抓取选项实例的地方,在代码中三秒钟后,我检查第三个菜单列表。我希望这能解决你的问题
请注意
<mat-list-option (selectChange)="onChange($event)" value="bananas">Bananas</mat-list-option>
香蕉
仍然不起作用,因为在当前的2.0.0-beta.12上
你会发现他们从未调用过。在选择更改时发出
,它只是坐在那里无所事事
但正如在master分支上所看到的,它们已经将selectChange
更改为selectionChange
,它们实际上调用了.emit
,因此它应该可以在master上工作 现在甚至不能使用(selectChange)=“onChange($event)”
,因为这是一个bug。在主分支中,您会看到他们正在将此更改为selectionChange
// grab the MatListOption instances..
@ViewChildren(MatListOption) options: QueryList<MatListOption>;
ngOnInit() {
this.someService.getData(data => {
// say you want to check the third one.
this.options.toArray[2].selected = true;
})
}
<mat-list-option (selectChange)="onChange($event)" value="bananas">Bananas</mat-list-option>