1

我试图在 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
            };
        })
    };
})
4

0 回答 0