根据这个答案,我确实想出了下面的代码可以正常工作:
result: any;
ngOnInit() {
this.result = getResult();
}
<ngx-charts-bar-vertical-stacked
*ngIf="(result | async) as results"
[results]="results"
>
</ngx-charts-bar-vertical-stacked>
现在我想将结果作为输入参数传递:
@Input() result: any;
<ngx-charts-bar-vertical-stacked
*ngIf="(result| async) as results"
[results]="results"
>
</ngx-charts-bar-vertical-stacked>
但它只是不能以这种方式工作,图表只是没有显示,我在控制台中也看不到任何错误。但是,我通过将输入值分配给我声明的另一个组件属性来想出窍门:
data: any;
@Input() result: any;
ngOnInit() {
this.data = this.result;
}
<ngx-charts-bar-vertical-stacked
*ngIf="(data| async) as results"
[results]="results"
>
</ngx-charts-bar-vertical-stacked>
所以这种方式它可以工作,但我想知道你如何在不引入新变量和做黑客之类的情况下正确地做到这一点this.data = this.result;