检索从 Angular 中的函数返回的值
Retrieve value returned from a function in Angular
我想使用 chart.js 和 ng2chart 在 Angular 中创建图表。我创建了一个函数来计算我想传递给我的图表的值,但是我不能像下面的代码那样那样做,因为我会在它初始化之前使用 属性 'online'。我可以将 onlineNumber()
函数返回的值传递给我的 doughnutChartData
的另一种方法是什么?这是函数:
online: number;
term: number;
doughnutChartData = [this.online, this.term];
onlineNumber() : number {
this.memberService.onlineUsers().subscribe((number: number) => {
this.online = number;
})
return this.online;
}
userNumber() {
this.memberService.userNumber().subscribe((number: number) => {
this.term = number;
})
}
html:
<div style=" margin-top: -6%; margin-left:15%; width: 50%;">
<canvas baseChart
[data]="doughnutChartData"
[labels]="doughnutChartLabels"
[chartType]="doughnutChartType"
></canvas>
</div>
你有完整的工作示例吗?
我的猜测是在订阅中初始化 doughnutChartData:
online: number;
doughnutChartData;
onlineNumber() : number {
this.memberService.onlineUsers().subscribe((number: number) => {
this.online = number;
doughnutChartData = [this.online, 9];
});
return this.online;
}
更新后的答案:添加另一个方法来初始化 DoughnutChartData 并在 userNumber 和 onlineNumber 中使用它:
initializeDoughnutChartData() {
if (this.online != undefined && this.term != undefined) {
this.doughnutChartData = [this.online, this.term];
}
}
在 userNumber 和 onlineNumber 中调用此方法:
onlineNumber() : number {
this.memberService.onlineUsers().subscribe((number: number) => {
this.online = number;
this.initializeDoughnutChartData();
})
return this.online;
}
userNumber() {
this.memberService.userNumber().subscribe((number: number) => {
this.term = number;
this.initializeDoughnutChartData();
})
}
我想使用 chart.js 和 ng2chart 在 Angular 中创建图表。我创建了一个函数来计算我想传递给我的图表的值,但是我不能像下面的代码那样那样做,因为我会在它初始化之前使用 属性 'online'。我可以将 onlineNumber()
函数返回的值传递给我的 doughnutChartData
的另一种方法是什么?这是函数:
online: number;
term: number;
doughnutChartData = [this.online, this.term];
onlineNumber() : number {
this.memberService.onlineUsers().subscribe((number: number) => {
this.online = number;
})
return this.online;
}
userNumber() {
this.memberService.userNumber().subscribe((number: number) => {
this.term = number;
})
}
html:
<div style=" margin-top: -6%; margin-left:15%; width: 50%;">
<canvas baseChart
[data]="doughnutChartData"
[labels]="doughnutChartLabels"
[chartType]="doughnutChartType"
></canvas>
</div>
你有完整的工作示例吗?
我的猜测是在订阅中初始化 doughnutChartData:
online: number;
doughnutChartData;
onlineNumber() : number {
this.memberService.onlineUsers().subscribe((number: number) => {
this.online = number;
doughnutChartData = [this.online, 9];
});
return this.online;
}
更新后的答案:添加另一个方法来初始化 DoughnutChartData 并在 userNumber 和 onlineNumber 中使用它:
initializeDoughnutChartData() {
if (this.online != undefined && this.term != undefined) {
this.doughnutChartData = [this.online, this.term];
}
}
在 userNumber 和 onlineNumber 中调用此方法:
onlineNumber() : number {
this.memberService.onlineUsers().subscribe((number: number) => {
this.online = number;
this.initializeDoughnutChartData();
})
return this.online;
}
userNumber() {
this.memberService.userNumber().subscribe((number: number) => {
this.term = number;
this.initializeDoughnutChartData();
})
}