Gra*_*pho 4 highcharts ember.js
2016年3月17日更新,以更好地反映EmberJS v1.13.0及更高版本的当前最佳实践.
我将Highcharts渲染成一个组件,我几乎让它工作,但是属性到组件的绑定在某处丢失了.
这就是我调用组件的方式:
//templates/index.hbs
{{pie-chart data=pieData}}
Run Code Online (Sandbox Code Playgroud)
这是data
属性的样子(当前在控制器中设置):
//controllers/index.js
import Ember from 'ember';
export default Ember.Controller.extend({
init() {
this._super(...arguments);
this.pieData = [
['0 - 30', 2.5],
['31 - 60', 7.5],
['61 - 90', 12.5],
['91 - 120', 77.5]
];
}
});
Run Code Online (Sandbox Code Playgroud)
这是组件逻辑:
//components/pie-chart.js
import Ember from 'ember';
export default Ember.Component.extend({
classNames: ['chart'],
renderChart() {
return this.$().highcharts({
chart: {
height: 275
},
title: null,
plotOptions: {
pie: {
dataLabels: {
enabled: false
}
}
},
series: {
type: 'pie',
data: this.get('data')
},
colors: ['#777777', '#888888', '#999999', '#aaaaaa', '#bbbbbb', '#cccccc', '#dddddd', '#eeeeee'],
credits: {
enabled: true
}
});
},
didUpdateAttrs() {
let chart = this.$().highcharts();
let series = this.get('data');
chart.series[0].setData(series);
},
didInsertElement() {
this._super(...arguments);
this.renderChart();
},
willDestroyElement() {
this.$().highcharts().destroy();
}
});
Run Code Online (Sandbox Code Playgroud)
我从这个博客得到了这个想法,我正在尝试调整它以制作更多的图表.
图表呈现在屏幕上,但它是空白的...没有错误报告...我唯一可以想到的是data
,为了绘制图形,没有正确处理属性?
我不确定这是我错误使用Ember代码,还是错误使用Highcharts代码?
series
里面的属性highchart
应该是一个对象数组..但我错误地定义了一个对象:
修复:
series: [{
type: 'pie',
data: this.get('data')
}],
Run Code Online (Sandbox Code Playgroud)
那么,这就是你如何将Highchart.js渲染成一个组件:)
归档时间: |
|
查看次数: |
1473 次 |
最近记录: |