首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在API调用上用角6创建动态更新图

在API调用上用角6创建动态更新图
EN

Stack Overflow用户
提问于 2018-06-13 02:17:29
回答 1查看 1.6K关注 0票数 1

我正在尝试实现基于api调用的角度chart.js图的动态更新,目前我已经将它实现为一个静态图表,如下所示。

服务

代码语言:javascript
复制
import { Injectable } from '@angular/core';
import {HttpClient,HttpHeaders} from '@angular/common/http';
import 'rxjs/add/operator/map';


@Injectable({
  providedIn: 'root'
})
export class WeatherService {

  constructor(private _http:HttpClient) {
   }

   dailyForecast(){
    return this._http.get("http://samples.openweathermap.org/data/2.5/history/city?q=Warren,OH&appid=b6907d289e10d714a6e88b30761fae22")
      .map(result => result);
   }


}

组件

代码语言:javascript
复制
 ngOnInit(){
  this._weather.dailyForecast()
               .subscribe(res=>{
                 let temp_max = res['list'].map(res=> res.main.temp_max)
                 let temp_min = res['list'].map(res=> res.main.temp_min)
                 let alldates = res['list'].map(res=> res.dt)

                 let weatherDates = []
                 alldates.forEach((res) => {
                   let jsdate = new Date(res*1000)
                   weatherDates.push(jsdate.toLocaleTimeString('en',{year:'numeric',month:'short',day:'numeric'}))
                 });

                 this.chart = new Chart('canvas',{
                    type: 'line',
                    data : {
                      labels:weatherDates,
                      datasets: [
                        {
                          data:temp_max,
                          borderColor: '#3cba9f',
                          fill:false
                        },
                        {
                          data:temp_min,
                          borderColor: '#ffcc00',
                          fill:false
                        }
                      ]
                    },
                    options:{
                      legend:{
                        display:false
                      },
                      scales: {
                        xAxes: [{
                          display:true
                        }],
                        yAxes: [{
                          display:true
                        }]
                      }
                    }
                 });
               })
  }

但是我想让它看起来像图一样的IQ选项(只更新图形组件),

动态更新图

我能做些什么?我该如何实现这些呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-13 02:20:56

您可以通过轮询服务来完成,在轮询服务中,在特定的间隔之后发出每个请求,

您可以使用$interval根据间隔提出请求,

Observable.interval(3000)

代码语言:javascript
复制
let intervalId = setInterval(() => {
   this.updateData();
}, 3000);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50828215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档