根据此answer,我确实提出了以下可以正常工作的代码:
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;
之类的黑客攻击