私はこれで狂ってしまいましたが、これを理解することはできません。私はデータを手渡しするchart.jsために、独自の配列に「sr_count」と「MONTH_NAME」再フォーマットからデータを取得する必要が形式Angular 4からchart.jsのJSONデータが観測可能
"data": [
{
"sr_count": 91,
"month_name": "October",
"month_num": 10,
"year": 2017
},
{
"sr_count": 50,
"month_name": "September",
"month_num": 9,
"year": 2017
}
]
:私はこのようにフォーマットされた私のAPIからのデータを持っています。例えば
:
["91","50"]
["October", "September"]
私はすべてのデータをマップすることができることをのreportService私は考え出してる私のコンポーネントのコードから、私のAPI
getSR(groupBy: string, beginDate:string, endDate:string): Observable<Report[]> {
return this.http.get(`${this.reportUrl}/SR?group_by="${groupBy}"&begin_date="${beginDate}"&end_date="${endDate}"`)
.map(res => res.json().data)
.catch(this.handleError);
}
からデータをつかんされを持っていますsr_count
とmonth_name
を配列に格納し、ローカル変数にプッシュしてchart.jsのデータに使用できるようにします
export class SrReportsComponent implements OnInit {
monthName: [];
srCount1: [];
srCount2: [];
data: any;
ngOnInit() {
this.reportService.getSRLastMonth()
.subscribe(data => {
srCount= data.map(item => {
return item.sr_count
})
console.log(srCount) // ["October", "September"]
this.srCount2.push(srCount) // [["52", "41"]]
});
this.reportService.getSRThisMonth('Month',lastMonth,today)
.subscribe(data => {
monthName= data.map(item => {
return item.month_name
}
srCount= data.map(item => {
return item.sr_count
}
console.log(monthName) // ["October", "September"]
this.monthName.push(monthName) // [["October", "September"]]
this.srCount1.push(srCount) //[["91","50"]]
});
console.log(this.monthName)// [["October", "September"]]
this.data = {
labels: this.monthName, //returns []
datasets: [
{
label: 'First Dataset',
data: this.srCount1,
fill: false,
borderColor: '#4bc0c0'
},
{
label: 'Second Dataset',
data: this.srCount2,
fill: true,
borderColor: '#4ba0c0'
}
]
}
}
push()
メソッドを使用すると、chart.jsが見ることができない配列がネストされているようです。私もmonthName[0]
を試してみましたが、コンソールにはundefined
があります
ローカル変数に渡されたobservableから配列を取得して、chart.jsを動作させるにはどうすればよいですか?
これは私の唯一の懸念は、同じグラフ上の複数のデータセットを扱うことができることです。これはこのデータセットのデータを取得するために機能しますが、前の月にデータを比較する必要がある場合は、私はこれが再考する必要があると思うでしょう、はい? –
私はちょうどあなたの質問に答えます。あなたがこの質問に念頭に置いていることがあれば、編集して何を達成したいのかを明確に伝えてから別の種類の回答を得るか、これを受け入れたとマークして新しいものを作成します。 –
が記載されています。しかし、私はあなたが言ったことをやってみました。私はチャートを読み込むことができないようです。なんらかの理由で、ディレクティブは、そのデータが観測可能な状態にあるときに、 'data'結果を見ることができません。 –