【问题标题】:Multiple constructor implementations are not allowed不允许多个构造函数实现
【发布时间】:2019-02-21 00:51:06
【问题描述】:

我需要在一个页面中显示多个 d3 图表。在为一个图表添加代码时,它可以工作。 但显示多个图表的错误。

bardata: Observable<ChartModel>;


constructor(private http: HttpClient) {
    this.bardata = this.http.get<ChartModel>('./assets/mocdata/data.json');
    console.log('sd', this.bardata);
}


areadata: Observable<ChartModel>;


constructor(private http: HttpClient) {
    this.areadata = this.http.get<ChartModel>('./assets/mocdata/data.json');
    console.log('sd', this.areadata);
}

请帮我解决构造函数问题。

提前致谢。

【问题讨论】:

  • 你不能在同一个类中声明两个构造函数,你应该为这个海豚调用ngOnInit方法。

标签: angular typescript d3.js constructor


【解决方案1】:

只需为每个图表创建方法并在构造函数中调用它,如下所示:

bardata: Observable<ChartModel>;
areadata: Observable<ChartModel>;

constructor(private http: Httpclient) {
  this.getBarData();
  this.getAreaData();
}

getBarData() {
  this.bardata = this.http.get<ChartModel>('./assets/mocdata/data.json');
  console.log('sd', this.bardata);
}

getAreaData() {
  this.areadata = this.http.get<ChartModel>('./assets/mocdata/data.json');
  console.log('sd', this.areadata);
}

【讨论】:

  • 这不会编译
  • @Dummy 你为什么这么认为?
  • 因为我知道打字稿?
  • @VishnuNair 能否请您更具体一点,它会向您显示什么错误输出?
  • @MaksymShevchenko 构造函数(私有 http:Httpclient)更改为构造函数(私有 http:HttpClient)。编译!!但一次只显示一张图表。
【解决方案2】:

你可以这样做

bardata: Observable<ChartModel>;
areadata: Observable<ChartModel>;

constructor(private http: HttpClient) {
    this.bardata = this.http.get<ChartModel>('./assets/mocdata/data.json');
    console.log('sd', this.bardata);

    this.areadata = this.http.get<ChartModel>('./assets/mocdata/data.json');
    console.log('sd', this.areadata);
}

【讨论】:

  • 这个可以编译,但是只能看到一个图表
猜你喜欢
  • 2020-07-24
  • 2017-04-23
  • 2019-07-03
  • 1970-01-01
  • 2019-07-04
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多