java - 如何使用 java 休息来使用 Angular 渲染 nv3d 烛台图?

标签 java angular rest charts candlestick-chart

我正在尝试将 nvd3d 烛台图与 Angular 一起使用,但在使用 Java 内置的休息服务时我无法渲染它。

如何使用 java 休息来使用 Angular 渲染 nv3d 烛台图?

我的休息正在返回这个:

[{"id":450,"vwap":3821.62,"faixa":69.48,"开盘":3858.7,"最高价":3863.29,"最低价":3793.81,"收盘价":3795.54, “日期”:19338}]

组件期望这样:

[{values:[{"id":450,"vwap":3821.62,"faixa":69.48,"开盘":3858.7,"最高":3863.29,"最低":3793.81,"收盘":3795.54,"日期":19338}]}]

我的 Angular 代码:

import { Injectable } from '@angular/core';
import { Provider, SkipSelf, Optional, InjectionToken } from '@angular/core';
import { Response, Http } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';

import { HttpInterceptorService, RESTService } from '@covalent/http';

import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/do';


export interface IDolFutDiario {
id: number;
  date: number;
  open: number;
  high: number;
  low: number;
  close: number;
  vwap: number;
  faixa: number;
}

@Injectable()
export class DolfudiarioService extends RESTService<IDolFutDiario>{

  constructor(private _http: HttpInterceptorService) {
    super(_http, {
      baseUrl: 'http://localhost:8080', 
      path: '',
    });
  }

  staticQuery(): Observable<IDolFutDiario[]> {

    return this.http.get('http://localhost:8080/dolfutdiarios')
        .map(this.extractData)
        .catch(this.handleErrorObservable);
  }

  extractData(res: Response) {
    let body = res.json();
    return body;
 }  

 private handleErrorObservable (error: Response | any) {
    console.error(error.message || error);
    return Observable.throw(error.message || error);
    }
}

我的Java代码:

@RestController
public class DolFutRestController {

    @Autowired
    DolFutDiarioService dolFutDiarioService;

    @RequestMapping(value = "dolfutdiarios", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<List<DolFutDiario>> list() {
        List<DolFutDiario> dolfutdiarios = dolFutDiarioService.listDolFutDiarios();
        return ResponseEntity.ok().body(dolfutdiarios);
    }   
}

PS:当我放置第二个数据 block [[values: ..... 时,它起作用了。 但是,当我从 Java 服务获取时,却没有。 也没有返回任何错误。

最佳答案

好吧,您需要将获得的数据 block 转换为您想要的数据 block 。如果您使用错误的格式,它将无法工作。问题的关键就在这个方法:

extractData(res: Response) {
    let body = res.json();
    return body;
}

在那里您可以将数据映射到您需要的内容;例如,如果您想将其包装在值对象中,请像这样操作:

extractData(res: Response) {
    const body = res.json();
    return [{ values: body }];
}

此外,尝试以不同的步骤console.log检查您的代码,看看您拥有什么并与您需要的进行比较!

关于java - 如何使用 java 休息来使用 Angular 渲染 nv3d 烛台图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49961451/

相关文章:

Angular2 可观察共享不起作用

java - 客户端的 pako 和服务器端的 java

java - Jersey 。在 REST 请求的响应中隐藏一些 POJO 字段的好方法

api - Promise 拒绝 : No provider for UserDetails!(UserDetails 是 Model 类)

java - 将 POJO 列表转换为 Map<String,Set<String>>

java - 将 JTable 中的电话号码列格式设置为 "(area) prefix-number"

java - 设置 Selenium 的 Allure 报告

angular - RXJS Observable 移除管道操作符

javascript - Redux 是否关心我的 API 的结构?

Java http 客户端和线程