如何在飞镖中使用 javascript 库

how to use javascript library in dart

我正在学习 package:js and the dart file,它是 chart.js 的 dart 包装器。

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

以下语句是什么意思?以下两个语句是否说明了此 dart 文件尝试连接的 javascript 库?

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

我不知道如何映射函数 https://github.com/google/chartjs.dart/blob/master/lib/chartjs.dart to functions in https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.js。谁能给多点教程?

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

您需要将脚本标记添加到 index.html 以加载要映射到的 JavaScript 文件,这将使它在全球范围内可用。

然后您需要映射

  • Dart 函数到 JavaScript 函数,所以当你调用这样一个 Dart 函数时,调用实际上会被转发到 JavaScript 函数。

  • Dart classes 这样你就可以使用强类型的 Dart classes 然后当你通过它们作为映射函数的参数或从此类函数调用中将它们作为 return 值获取。

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

library后的名字chart.js随意。 library 指令只需要一个唯一的名称。

@JS('Chart') 表示加载的 chart.js 库在 window.Chart 下的 JavaScript 地可用(window 表示在 JS 地是全局的并且是隐式的) .

@JS()
class Chart {

声明一个 Dart class Chart 并且 @JS() 将它映射到一个 JS class 在上面声明的库范围内具有相同的名称。所以 Dart class Chart 将映射到 JavaScript class window.Chart.Chart.

external factory Chart(

Dart 中的 external ... 声明 Chart class 映射到同名的 JS 方法。

可以在 README.md https://pub.dartlang.org/packages/js.

中找到更多详细信息

如果您仍然遇到困难,可以提出更具体的问题。很难回答有关如何使用包的一般性问题。