使用Package JS的Dart D3系列

数字欺骗

我们想直接从Dart调用D3(v4)线函数(除其他功能外),因为我们试图将其与Angular 2一起使用。

  • Dart D3库(https://github.com/rwl/d3.dart),但未公开SVG Line。
  • 直接JS互操作

    var line = context['d3']['svg'].callMethod('line').callMethod('x', [new JsFunction.withThis((jsThis) { return 10; })]).callMethod('y', [new JsFunction.withThis((jsThis) { return 20; })]); line.apply(['{x:10, y:50}']);

但这会爆炸并且非常丑陋。

  • 使用Js.dart

    @JS('d3')
    library d3;
    
    import 'dart:html';
    
    import "package:func/func.dart";
    import "package:js/js.dart";
    
    
    @JS('line')
    class Line {
      external Line();
      external String (var data);
      external Line x(Function func);
      external Line y(Function func);
    }
    

    这似乎可以正常工作,除了D3要求您使用数据调用原始函数以生成路径。例如,您需要以下内容:

    var line = d3.line().x(function (d) { return d.x;}).y(function (d) { return d.y;});
    line([{x:10, y:20}]);
    

因此,我们必须:

   Line line = new Line();
   line.x(allowInterop((blah) { return 10;}));
   line.y(allowInterop((blah) { return 10;}));
   line.apply([[10, 20]]); //What goes here?
  • 我也尝试过以下答案:Dart js与D3互操作

    var d3 = context['d3']; var line = d3.line().x((jsThis) { return 20;}).y((jsThis) { return 20;}); return line([[10, 20]]);

建议这样做的方法是什么?另外,您有使用Angular 2 + D3 + Dart的任何指南吗?我只看过类型脚本,在它们之间进行翻译并不是世界上最容易的事情。

数字欺骗

我设法使用Js.dart使其正常工作。重要的部分是具有调用功能。就像D3一样,这使您可以直接调用该函数以获取结果。

Dart包装器:

@JS('d3')
library d3;

import 'dart:js';
import "package:js/js.dart";

typedef num D3AccessorFunction(List<num> d, num i, List<List<num>> data);
Function d3AccessorFunction(D3AccessorFunction function) {
  return allowInterop(function);
}
@JS('line')
class Line {
  external Line();
  external String call (List<List<num>> data);
  external Line x(D3AccessorFunction function);
  external Line y(D3AccessorFunction function);
}

@JS("arc")
class Arc {
  external innerRadius([num innerRadius]);
  external outerRadius([num outerRadius]);
  external startAngle([num startAngleInRadians]);
  external endAngle([num endAngleInRadians]);
  external Arc();
  external String call ();
}

功能:

Line line = new Line();
return line([[fromTo.x, fromTo.y], [endTo.x, endTo.y]]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Package JS的Dart D3系列

来自分类Dev

使用d3 js的水平条形图

来自分类Dev

如何使用D3插件设置rollup.js?

来自分类Dev

使用d3 js在phant中绘制json数据

来自分类Dev

d3.js-在一系列矩形上使用笔刷

来自分类Dev

d3.js-在一系列矩形上使用笔刷

来自分类Dev

从d3中的系列创建系列

来自分类Dev

如何使用D3 js在折线图中使用工具提示

来自分类Dev

如何使用D3 js在折线图中使用工具提示

来自分类Dev

在D3 JS中使用对角线函数在两点之间绘制曲线

来自分类Dev

使用Node js和D3实时在地图上绘制状态名称

来自分类Dev

使用D3 JS在Sankey图中显示百分比

来自分类Dev

使用路径将D3 JS堆叠的条放在顶部而不是底部

来自分类Dev

使用D3 JS通过ID选择元素时出现问题

来自分类Dev

是否可以使用d3并创建类似于vis.js的线/曲线?

来自分类Dev

如何使用d3 .js散点图在1900之前的x轴上呈现日期

来自分类Dev

使用d3 js和国家(地区)topojson文件分别绘制状态

来自分类Dev

如何使用D3 JS设置样式表的属性?

来自分类Dev

D3 js强制布局:使用链接参数设置节点半径

来自分类Dev

如何使用D3 Js向下钻取以创建图表列

来自分类Dev

使用 d3 和 dc.js 自定义时间线刻度

来自分类Dev

在饼图中使用鼠标悬停并在 d3 js 中显示标签

来自分类Dev

使用 intro.js 时 D3 工具提示几乎不可见

来自分类Dev

D3.js - 如何使用内联 JSON 作为 D3 图表的数据集,而不是 csv/tsv/json 文件

来自分类Dev

使用dart:js通过JQuery在Dart中监听事件

来自分类Dev

来自Dart的JsxGraph,使用Dart JS互操作

来自分类Dev

D3.js:使用长格式数据在多系列折线图中的现有线上绘制点

来自分类Dev

D3.js:使用长格式数据在多系列折线图中的现有折线上绘制点

来自分类Dev

在饼图中使用鼠标悬停并在 d3 v3 js 中显示标签

Related 相关文章

  1. 1

    使用Package JS的Dart D3系列

  2. 2

    使用d3 js的水平条形图

  3. 3

    如何使用D3插件设置rollup.js?

  4. 4

    使用d3 js在phant中绘制json数据

  5. 5

    d3.js-在一系列矩形上使用笔刷

  6. 6

    d3.js-在一系列矩形上使用笔刷

  7. 7

    从d3中的系列创建系列

  8. 8

    如何使用D3 js在折线图中使用工具提示

  9. 9

    如何使用D3 js在折线图中使用工具提示

  10. 10

    在D3 JS中使用对角线函数在两点之间绘制曲线

  11. 11

    使用Node js和D3实时在地图上绘制状态名称

  12. 12

    使用D3 JS在Sankey图中显示百分比

  13. 13

    使用路径将D3 JS堆叠的条放在顶部而不是底部

  14. 14

    使用D3 JS通过ID选择元素时出现问题

  15. 15

    是否可以使用d3并创建类似于vis.js的线/曲线?

  16. 16

    如何使用d3 .js散点图在1900之前的x轴上呈现日期

  17. 17

    使用d3 js和国家(地区)topojson文件分别绘制状态

  18. 18

    如何使用D3 JS设置样式表的属性?

  19. 19

    D3 js强制布局:使用链接参数设置节点半径

  20. 20

    如何使用D3 Js向下钻取以创建图表列

  21. 21

    使用 d3 和 dc.js 自定义时间线刻度

  22. 22

    在饼图中使用鼠标悬停并在 d3 js 中显示标签

  23. 23

    使用 intro.js 时 D3 工具提示几乎不可见

  24. 24

    D3.js - 如何使用内联 JSON 作为 D3 图表的数据集,而不是 csv/tsv/json 文件

  25. 25

    使用dart:js通过JQuery在Dart中监听事件

  26. 26

    来自Dart的JsxGraph,使用Dart JS互操作

  27. 27

    D3.js:使用长格式数据在多系列折线图中的现有线上绘制点

  28. 28

    D3.js:使用长格式数据在多系列折线图中的现有折线上绘制点

  29. 29

    在饼图中使用鼠标悬停并在 d3 v3 js 中显示标签

热门标签

归档