我试图在 ember octane 应用程序中创建一个 vega 图表,但这样做我能够渲染图表一次,但从那时起,即使值发生变化,图表也不会重新渲染
我使用的代码是
组件.ts
@tracked
model!: any;
get chartData() {
const data = this.model.data;
return {
table: data.map((datum: any) => {
return {
...datum
};
})
};
}
图表.hbs
{{vega-vis spec=this.spec data=this.chartData}}
为什么它不工作,但同时做set(this,"dataSource",this.model.data)
工作
dataSource: computed(function() {
return emberArray([
{"category": "A", "amount": 28},
{"category": "B", "amount": 55},
{"category": "C", "amount": 43},
{"category": "D", "amount": 91},
{"category": "E", "amount": 81},
{"category": "F", "amount": 53},
{"category": "G", "amount": 19},
{"category": "H", "amount": 87}
]);
}),
data: computed('dataSource.{[],@each.amount}', function () {
const dataSource = get(this, 'dataSource');
return {
table: dataSource.map((datum) => {
// return a copy because Vega Vis will mutate the dataset.
return {
...datum
};
})
};
})