how to fill the chart by dynamic data
I develop function for dashboard in my application, i use ChartModule, if the data static, the chart word, but i want use data dynamic in the chart, theproblem is how to fill the chart by dynamic data and thank's
file .html:
<div class="col-md-4">
<div class="ibox" style="margin-top:20px">
<div class="ibox-head">
<div class="ibox-title">
<div style="font-size:12px"><i class="fa fa-pie-chart fa-fw"></i> My Tickets</div>
</div>
</div>
<div class="ibox-body" *ngFor="let pie of pies">
<div style="display: block">
<canvas baseChart width="511" height="255"
[(data)]="this[pie.Nombre]"
[(labels)]="this[pie.Name]"
[chartType]="doughnutChartType"
(chartHover)="chartHovered($event)"
(chartClick)="chartClicked($event)"></canvas>
</div>
</div>
</div>
</div>
file.ts:
public doughnutchartlabels: string = ;
public doughnutchartdata: number = ;
public doughnutcharttype: string = 'doughnut';
constructor(private http: HttpClient, private _dashbordService: DashbordService, private _userService: UserService) { }
async ngOnInit() {
let id = localStorage.getItem('userId');
console.log(id);
this.pies = await this._dashbordService.getViews(id)
}
model.ts:
export class PieChartData {
Name: string;
Nombre: number;
}
file.service.ts:
async getViews(UID) {
let result = await this.http.get(this.pathAPI + 'Statistique?typeByUserId=' + UID)
.toPromise()
.then(function (res) {
return result = res;
})
.catch((err) => {
return (err)
})
return result;
}
angular charts dashboard
add a comment |
I develop function for dashboard in my application, i use ChartModule, if the data static, the chart word, but i want use data dynamic in the chart, theproblem is how to fill the chart by dynamic data and thank's
file .html:
<div class="col-md-4">
<div class="ibox" style="margin-top:20px">
<div class="ibox-head">
<div class="ibox-title">
<div style="font-size:12px"><i class="fa fa-pie-chart fa-fw"></i> My Tickets</div>
</div>
</div>
<div class="ibox-body" *ngFor="let pie of pies">
<div style="display: block">
<canvas baseChart width="511" height="255"
[(data)]="this[pie.Nombre]"
[(labels)]="this[pie.Name]"
[chartType]="doughnutChartType"
(chartHover)="chartHovered($event)"
(chartClick)="chartClicked($event)"></canvas>
</div>
</div>
</div>
</div>
file.ts:
public doughnutchartlabels: string = ;
public doughnutchartdata: number = ;
public doughnutcharttype: string = 'doughnut';
constructor(private http: HttpClient, private _dashbordService: DashbordService, private _userService: UserService) { }
async ngOnInit() {
let id = localStorage.getItem('userId');
console.log(id);
this.pies = await this._dashbordService.getViews(id)
}
model.ts:
export class PieChartData {
Name: string;
Nombre: number;
}
file.service.ts:
async getViews(UID) {
let result = await this.http.get(this.pathAPI + 'Statistique?typeByUserId=' + UID)
.toPromise()
.then(function (res) {
return result = res;
})
.catch((err) => {
return (err)
})
return result;
}
angular charts dashboard
add a comment |
I develop function for dashboard in my application, i use ChartModule, if the data static, the chart word, but i want use data dynamic in the chart, theproblem is how to fill the chart by dynamic data and thank's
file .html:
<div class="col-md-4">
<div class="ibox" style="margin-top:20px">
<div class="ibox-head">
<div class="ibox-title">
<div style="font-size:12px"><i class="fa fa-pie-chart fa-fw"></i> My Tickets</div>
</div>
</div>
<div class="ibox-body" *ngFor="let pie of pies">
<div style="display: block">
<canvas baseChart width="511" height="255"
[(data)]="this[pie.Nombre]"
[(labels)]="this[pie.Name]"
[chartType]="doughnutChartType"
(chartHover)="chartHovered($event)"
(chartClick)="chartClicked($event)"></canvas>
</div>
</div>
</div>
</div>
file.ts:
public doughnutchartlabels: string = ;
public doughnutchartdata: number = ;
public doughnutcharttype: string = 'doughnut';
constructor(private http: HttpClient, private _dashbordService: DashbordService, private _userService: UserService) { }
async ngOnInit() {
let id = localStorage.getItem('userId');
console.log(id);
this.pies = await this._dashbordService.getViews(id)
}
model.ts:
export class PieChartData {
Name: string;
Nombre: number;
}
file.service.ts:
async getViews(UID) {
let result = await this.http.get(this.pathAPI + 'Statistique?typeByUserId=' + UID)
.toPromise()
.then(function (res) {
return result = res;
})
.catch((err) => {
return (err)
})
return result;
}
angular charts dashboard
I develop function for dashboard in my application, i use ChartModule, if the data static, the chart word, but i want use data dynamic in the chart, theproblem is how to fill the chart by dynamic data and thank's
file .html:
<div class="col-md-4">
<div class="ibox" style="margin-top:20px">
<div class="ibox-head">
<div class="ibox-title">
<div style="font-size:12px"><i class="fa fa-pie-chart fa-fw"></i> My Tickets</div>
</div>
</div>
<div class="ibox-body" *ngFor="let pie of pies">
<div style="display: block">
<canvas baseChart width="511" height="255"
[(data)]="this[pie.Nombre]"
[(labels)]="this[pie.Name]"
[chartType]="doughnutChartType"
(chartHover)="chartHovered($event)"
(chartClick)="chartClicked($event)"></canvas>
</div>
</div>
</div>
</div>
file.ts:
public doughnutchartlabels: string = ;
public doughnutchartdata: number = ;
public doughnutcharttype: string = 'doughnut';
constructor(private http: HttpClient, private _dashbordService: DashbordService, private _userService: UserService) { }
async ngOnInit() {
let id = localStorage.getItem('userId');
console.log(id);
this.pies = await this._dashbordService.getViews(id)
}
model.ts:
export class PieChartData {
Name: string;
Nombre: number;
}
file.service.ts:
async getViews(UID) {
let result = await this.http.get(this.pathAPI + 'Statistique?typeByUserId=' + UID)
.toPromise()
.then(function (res) {
return result = res;
})
.catch((err) => {
return (err)
})
return result;
}
angular charts dashboard
angular charts dashboard
asked Nov 19 '18 at 10:17
adam90adam90
1516
1516
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Issue is that chart gets rendered before data arrives in async case, delay rendering till data arrives should work as below:
.ts
pies:PieChartData;//undefined to start with
.html
<div class="col-md-4">
<div class="ibox" style="margin-top:20px">
<div class="ibox-head">
<div class="ibox-title">
<div style="font-size:12px">
<i class="fa fa-pie-chart fa-fw"></i> My Tickets
</div>
</div>
</div>
<ng-container *ngIf="pies">
<div class="ibox-body" *ngFor="let pie of pies">
<div style="display: block">
<canvas
baseChart
width="511"
height="255"
[(data)]="this[pie.Nombre]"
[(labels)]="this[pie.Name]"
[chartType]="doughnutChartType"
(chartHover)="chartHovered($event)"
(chartClick)="chartClicked($event)"
></canvas>
</div>
</div>
</ng-container>
</div>
</div>
Once data arrives for pies after api call chart should show up with data.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53372462%2fhow-to-fill-the-chart-by-dynamic-data%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Issue is that chart gets rendered before data arrives in async case, delay rendering till data arrives should work as below:
.ts
pies:PieChartData;//undefined to start with
.html
<div class="col-md-4">
<div class="ibox" style="margin-top:20px">
<div class="ibox-head">
<div class="ibox-title">
<div style="font-size:12px">
<i class="fa fa-pie-chart fa-fw"></i> My Tickets
</div>
</div>
</div>
<ng-container *ngIf="pies">
<div class="ibox-body" *ngFor="let pie of pies">
<div style="display: block">
<canvas
baseChart
width="511"
height="255"
[(data)]="this[pie.Nombre]"
[(labels)]="this[pie.Name]"
[chartType]="doughnutChartType"
(chartHover)="chartHovered($event)"
(chartClick)="chartClicked($event)"
></canvas>
</div>
</div>
</ng-container>
</div>
</div>
Once data arrives for pies after api call chart should show up with data.
add a comment |
Issue is that chart gets rendered before data arrives in async case, delay rendering till data arrives should work as below:
.ts
pies:PieChartData;//undefined to start with
.html
<div class="col-md-4">
<div class="ibox" style="margin-top:20px">
<div class="ibox-head">
<div class="ibox-title">
<div style="font-size:12px">
<i class="fa fa-pie-chart fa-fw"></i> My Tickets
</div>
</div>
</div>
<ng-container *ngIf="pies">
<div class="ibox-body" *ngFor="let pie of pies">
<div style="display: block">
<canvas
baseChart
width="511"
height="255"
[(data)]="this[pie.Nombre]"
[(labels)]="this[pie.Name]"
[chartType]="doughnutChartType"
(chartHover)="chartHovered($event)"
(chartClick)="chartClicked($event)"
></canvas>
</div>
</div>
</ng-container>
</div>
</div>
Once data arrives for pies after api call chart should show up with data.
add a comment |
Issue is that chart gets rendered before data arrives in async case, delay rendering till data arrives should work as below:
.ts
pies:PieChartData;//undefined to start with
.html
<div class="col-md-4">
<div class="ibox" style="margin-top:20px">
<div class="ibox-head">
<div class="ibox-title">
<div style="font-size:12px">
<i class="fa fa-pie-chart fa-fw"></i> My Tickets
</div>
</div>
</div>
<ng-container *ngIf="pies">
<div class="ibox-body" *ngFor="let pie of pies">
<div style="display: block">
<canvas
baseChart
width="511"
height="255"
[(data)]="this[pie.Nombre]"
[(labels)]="this[pie.Name]"
[chartType]="doughnutChartType"
(chartHover)="chartHovered($event)"
(chartClick)="chartClicked($event)"
></canvas>
</div>
</div>
</ng-container>
</div>
</div>
Once data arrives for pies after api call chart should show up with data.
Issue is that chart gets rendered before data arrives in async case, delay rendering till data arrives should work as below:
.ts
pies:PieChartData;//undefined to start with
.html
<div class="col-md-4">
<div class="ibox" style="margin-top:20px">
<div class="ibox-head">
<div class="ibox-title">
<div style="font-size:12px">
<i class="fa fa-pie-chart fa-fw"></i> My Tickets
</div>
</div>
</div>
<ng-container *ngIf="pies">
<div class="ibox-body" *ngFor="let pie of pies">
<div style="display: block">
<canvas
baseChart
width="511"
height="255"
[(data)]="this[pie.Nombre]"
[(labels)]="this[pie.Name]"
[chartType]="doughnutChartType"
(chartHover)="chartHovered($event)"
(chartClick)="chartClicked($event)"
></canvas>
</div>
</div>
</ng-container>
</div>
</div>
Once data arrives for pies after api call chart should show up with data.
answered Nov 19 '18 at 11:09
User3250User3250
1,6253928
1,6253928
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53372462%2fhow-to-fill-the-chart-by-dynamic-data%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown