【问题标题】:Angular ngx-charts how to get x axis numberAngular ngx-charts如何获取x轴编号
【发布时间】:2018-04-29 01:19:47
【问题描述】:

我有一个 Angular Ngx 垂直图表,我只需要获取 x 轴编号。我想在 onSelect 函数中使用这个 x 轴数。

HTML:

  <ngx-charts-bar-vertical
        [xAxisLabel]="xAxisLabel"
        [yAxisLabel]="yAxisLabel"
        (select)="onSelect($event)"
        [results]="dataSource">
  </ngx-charts-bar-vertical>

数据源:

[ {userId: 5, name: "用户名示例", value: 69.6} ... ]

我实际上想获得“userId”部分,但我做不到。 当我选择一个 bar 时,onSelect 只得到“name”和“value”部分,而不是 'userId'的一部分。

实际上,我想要与这些东西完全相反的东西 :https://github.com/swimlane/ngx-charts/issues/409
这里想隐藏所有数据,但我想在单击栏时获取所有数据。

所以我认为:

  • 获取x轴编号
  • userId = dataSource[xAxisNumber].userId;

我该怎么做?

【问题讨论】:

    标签: angular bar-chart axis onselect ngx-charts


    【解决方案1】:

    由于您已经有了名称,您可以使用 array.find() 方法获取 userId 值,如下所示,

    const userId = dataSource.find(t=>t.name === 'onselectedname').userId;
    

    【讨论】:

    • 抱歉,由于用户名相同,此技术不起作用
    • 然后使用 array.filter() 并访问第 0 个名称
    • @mevaka 什么?我不明白
    • 想一想:你有5个同名同值的数据,如果你使用这种技术,你每次只能显示0ht数据,但你想显示第0、第1、第2等数据.. 是的,我知道我可以创建一个辅助变量来计算我点击了多少次并引用它,但是相同的值集不仅仅是一个,例如我有 100 个数据,其中 5 个的值为 6,其中 7 个的值为5 等等。我只想访问准确引用我点击的数据的数量,因为我有很多数据,其中一些确实是相同的。
    【解决方案2】:

    我找到了一个简单的解决方案: 只添加了extra 字段,就可以了。

    现在我的数据源是这样的:

    { name: '用户名', value: 40,32, extra: { userId: 17 }

    所以现在我可以得到 extra 字段,然后我可以得到 use userId 字段。

    它帮助了我: https://github.com/swimlane/ngx-charts/issues/506

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-08
      • 1970-01-01
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多