微信开发者工具使用ECharts,filteredDataArray是数组有avenues属性是对象。如何把avenues的对象属性和值渲染到ECharts中?
时间: 2024-03-16 19:40:55 浏览: 44
可以通过ECharts的series中的data属性来渲染数组中的每一个元素,再通过formatter属性来定制每个元素的显示内容。
具体操作步骤如下:
1. 在series中的data属性中,设置filteredDataArray数组作为数据源。
```javascript
series: [{
type: 'bar',
data: filteredDataArray
}]
```
2. 在tooltip中,设置formatter属性,通过回调函数来获取每个元素的属性和值,并返回自定义的显示内容。
```javascript
tooltip: {
formatter: function(params) {
var avenue = params.data.avenues;
var content = '';
for (var key in avenue) {
content += key + ': ' + avenue[key] + '<br>';
}
return content;
}
}
```
这样,就可以将数组中每个元素的avenues属性的对象属性和值渲染到ECharts中了。
相关问题
微信小程序开发,使用微信开发者工具。现在js页有filteredDataArray数组如下{ date: currentDate, avenues: { "自然来访": 0, "转介": 0, "自拓": 0, "电call": 0, "老客户": 0, }, dataCount: 0 };现在需要再wxml页面使用wx:for循环渲染avenues内的属性,可以怎么绑定数据?
你可以使用wx:for循环遍历filteredDataArray数组,然后在每次遍历时使用wx:key指定一个唯一的键值,最后在wx:for循环内部使用{{}}绑定avenues内的属性名和属性值即可。具体的代码示例如下:
```html
<view wx:for="{{filteredDataArray}}" wx:key="{{index}}">
<view wx:for="{{item.avenues}}" wx:key="{{index}}">
<text>{{index}}: {{item.avenues[index]}}</text>
</view>
</view>
```
在上面的代码中,我们首先使用wx:for循环遍历filteredDataArray数组,然后在每次遍历时使用{{item.avenues}}获取avenues对象。接着,我们再使用wx:for循环遍历avenues对象,使用{{index}}获取属性名,使用item.avenues[index]获取属性值。最后,在wx:for循环内部使用text标签来显示属性名和属性值。
使用的是微信开发者工具,在微信小程序的js页
好的,那么在微信小程序中,你可以按照以下方式来实现渲染:
1. 在页面中引入ECharts库文件,可以在页面的头部或者全局配置中引入。比如,在页面的头部引入:
```javascript
import * as echarts from '../../ec-canvas/echarts';
```
2. 在页面的data中定义filteredDataArray数组,并设置其初始值为空数组:
```javascript
data: {
filteredDataArray: []
}
```
3. 在页面的onLoad生命周期函数中,初始化ECharts实例,并将实例挂载到页面的data中:
```javascript
onLoad: function () {
this.ecComponent = this.selectComponent('#mychart');
this.ecComponent.init((canvas, width, height) => {
const chart = echarts.init(canvas, null, {
width: width,
height: height
});
this.setData({
chart: chart
});
return chart;
});
}
```
4. 在页面中定义一个函数,用于渲染图表数据。在函数中,先获取到ECharts实例,然后设置图表的配置项,最后调用setOption方法来渲染图表:
```javascript
renderChart: function () {
var that = this;
var chart = that.data.chart;
var option = {
tooltip: {
formatter: function(params) {
var avenue = params.data.avenues;
var content = '';
for (var key in avenue) {
content += key + ': ' + avenue[key] + '<br>';
}
return content;
}
},
series: [{
type: 'bar',
data: that.data.filteredDataArray
}]
};
chart.setOption(option);
}
```
5. 在页面的某个函数中,获取到filteredDataArray数组,并调用renderChart函数来渲染图表:
```javascript
var filteredDataArray = [
{ value: 100, name: 'A', avenues: { east: 30, west: 20, south: 50 } },
{ value: 200, name: 'B', avenues: { east: 60, west: 10, south: 130 } },
{ value: 150, name: 'C', avenues: { east: 10, west: 50, south: 90 } }
];
that.setData({
filteredDataArray: filteredDataArray
}, function() {
that.renderChart();
});
```
注意:上述代码中的that变量指的是页面的this对象,需要在函数的开头使用var that = this;来获取。另外,这里假设图表的容器是一个canvas组件,其id为mychart,你需要在wxml中定义该组件。
阅读全文