下面是我的代码,我试图将值从“ dataList”传递给this.data对象“ labels”,“ datasets”-> data;
但是如果创建一个变量并存储值然后将其传递给标签,数据,我将得到不确定的结果。
这是我的问题是如何设置标签的值,即dataList数组中的数据。
this.dataList = [['lable1', 200], ['lable2', 300], ['lable3', 500]];
///现在我要访问所有标签来标记,所有数字都访问数据 下面而不是静态数据,我想从dataList中放入数据
this.data = {
labels: ['label1', label2, labels3],
datasets: [
{
data: [200, 300, 500],
backgroundColor: [
"#FF6384",
"#36A2EB",
"#FFCE56"
],
hoverBackgroundColor: [
"#FF6384",
"#36A2EB",
"#FFCE56"
]
}]
};
我要在标签中放置动态数据,而不是标签中的静态值。
答案 0 :(得分:1)
答案 1 :(得分:0)
如果您想让labels
与dataList
具有相同的元素:
labels: dataList,
如果要避免突变:
labels: dataList.slice(),
或者:
labels: [...dataList],
答案 2 :(得分:0)
您必须将代码放入.subscribe()功能块中,因为它是异步的,您将需要等待数据返回。然后,只需分配给变量标签和数据集即可。我在这里使用过es6,但是您不需要。
dataList: Array<any> = [];
data: any = {}; //give data an inital value
searchCond: SearchConditions;
constructor(private apiService: ApiService) {
this.searchCond = new SearchConditions();
this.searchCond.eventType = "encounterType";
this.apiService.getEncounterDashBoard(this.searchCond)
.subscribe(data => {
this.dataList = data.result;
let [labels, datasets] = this.dataList;
this.data = {
labels: labels,
datasets: datasets,
};
});