代码之家  ›  专栏  ›  技术社区  ›  BAE

如何在DART中使用JavaScript库

  •  1
  • BAE  · 技术社区  · 6 年前

    我在学习 package:js 以及 dart file 是chart.js的省道包装。

    我认为这个文件是连接dart和javascript的桥梁。所以,在这个文件中,它必须说明这个dart文件试图连接的javascript库。我说得对吗?但我没有找到。

    以下陈述是什么意思?下面的两条语句是否说明这个dart文件试图连接的javascript库?

    @JS('Chart')
    library chart.js;
    

    我不知道如何映射函数 https://github.com/google/chartjs.dart/blob/master/lib/chartjs.dart 到中的函数 https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.js .有人可以提供更多的教程吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Günter Zöchbauer    6 年前

    您不需要映射到javascript 文件 ,您只需要映射到JS对象和函数。

    您需要将脚本标记添加到 index.html 它将加载您要映射到的javascript文件,这将使它在全局可用。

    然后你需要地图

    • dart函数到javascript函数,因此当调用这样一个dart函数时,调用实际上会转发到javascript函数。

    • DART类,这样您就可以使用强类型的DART类,当您将它们作为参数传递给映射函数或从此类函数调用中获取返回值时,这些DART类将转换为JavaScript对象或从中转换。

    @JS('Chart')
    library chart.js;
    

    名字 chart.js 之后 library 是武断的。这个 图书馆 指令只需要一个唯一的名称。

    @JS('Chart') 意味着加载的chart.js库在javascript中可用,位于 window.Chart ( window 在JS Land中是全局的,并且是隐式的)。

    @JS()
    class Chart {
    

    声明DART类 Chart @JS() 将其映射到上面声明的库作用域中具有相同名称的JS类。所以飞镖课 图表 将映射到javascript类 window.Chart.Chart .

    external factory Chart(
    

    这个 external ... 省道内的声明 图表 类映射到具有相同名称的JS方法。

    更多详细信息可以在readme.md中找到。 https://pub.dartlang.org/packages/js .

    如果你还是被卡住了,你可以问更多具体的问题。很难回答关于如何使用软件包的一般问题。