10

我正在使用 Swimlane 的 Ngx Charts 构建一个用于图形数据表示的应用程序,但是当我通过重新调用 GET 函数来更新数据数组的刷新按钮更新数据时,我遇到了奇怪的行为。我将@angular/flex-layout 用于“类似平铺”的视图,但即使不使用它,我仍然会遇到这个问题——它只是增加了父容器。我不想在[view]属性中使用硬编码的 px 值,因为我希望它适用于任何大小的图形/图块。

我正在使用一个非常基本的垂直条形图:

<div>
    <div>
        <ngx-charts-bar-vertical [results]="dataArray"
                                 [legend]="true"
                                 [xAxis]="true"
                                 [yAxis]="true"
                                 [xAxisLabel]="'Date'"
                                 [yAxisLabel]="'# tickets Raised'"
                                 [showXAxisLabel]="true"
                                 [showYAxisLabel]="true"></ngx-charts-bar-vertical>
    </div>
    <div>
        <!-- Got a table here -->
    </div>
</div>

要更新我dataArray正在做的事情:

export class DashboardComponent implements AfterViewInit {
    constructor(private httpClient: HttpClient, private datePipe: DatePipe, private dataService: DataService) { }

    dataArray: any[] = [];

    getData(): void {

        this.dataService.getSomeData<any[]>().subscribe(d => {
                this.dataArray = d;
        });
    }

    // Init
    ngAfterViewInit(): void {
        this.getData();
    }
}

在初始加载时,它很好并且会填充容器(它可以)但是当我点击刷新按钮时,这是我得到的行为: 在此处输入图像描述

感谢您的时间。

4

5 回答 5

5

我们使用图表周围的 div 解决了它,并使用 CSS 添加了 40 或 50vh 的高度。

图表在更新时不再改变高度。

于 2018-03-23T17:55:45.853 回答
1

以下对我有用:

<div style="max-height: 50vh">
  <ngx-charts-bar-vertical   [results]="dataArray"
                             [legend]="true"
                             [xAxis]="true"
                             [yAxis]="true"
                             [xAxisLabel]="'Date'"
                             [yAxisLabel]="'# tickets Raised'"
                             [showXAxisLabel]="true"
                             [showYAxisLabel]="true"></ngx-charts-bar-vertical>
</div>

不利的一面是,您需要定义最大高度。

于 2019-06-04T12:36:48.493 回答
0

更改检测无法识别您尝试修改数据。

this.dataArray = d;

而是尝试传播数据,这将检测到变化。它对我有用。

this.dataArray = [...d];
于 2020-03-18T09:57:31.447 回答
0

使用视图

<ngx-charts-bar-vertical [results]="dataArray"
                                 [legend]="true"
                                 [xAxis]="true"
                                 [yAxis]="true"
                                 [xAxisLabel]="'Date'"
                                 [yAxisLabel]="'# tickets Raised'"
                                 [showXAxisLabel]="true"
                                 [showYAxisLabel]="true" [view]="chartSize">
</ngx-charts-bar-vertical>

并在组件中定义 chartSize

chartSize = [770, 450];
于 2019-11-04T19:15:41.120 回答
0

属性视图将设置大小并停止更改

  <ngx-charts-line-chart
    [results]="sloGraphData"
    [xAxis]="true"
    [yAxis]="true"
    [legend]="true"
    [legendPosition]="'below'"
    [showXAxisLabel]="false"
    [showYAxisLabel]="false"
    [showRefLines]="true"
    [referenceLines]="refLines"
    [xAxisLabel]="'Days required'"
    [yAxisLabel]="'Date'"
    [view]="[360, 300]">
  </ngx-charts-line-chart>
于 2019-11-27T06:39:42.593 回答