javascript - 如何在 dart 中使用 javascript 库
问题描述
我正在学习package:js和dart 文件,它是 chart.js 的 dart 包装器。
我认为这个文件是连接 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。谁能给更多的教程?
解决方案
您不需要映射到 JavaScript文件,您只需要映射到 JS 对象和函数。
您需要添加一个脚本标签来index.html
加载您要映射到的 JavaScript 文件,这将使其全局可用。
然后你需要映射
Dart 函数到 JavaScript 函数,所以当你调用这样的 Dart 函数时,调用实际上会被转发到 JavaScript 函数。
Dart 类,以便您可以使用强类型的 Dart 类,然后当您将它们作为参数传递给映射函数或从此类函数调用中获取它们作为返回值时,这些类将与 JavaScript 对象相互转换。
@JS('Chart')
library chart.js;
chart.js
后面的名字library
是任意的。该library
指令只需要一个唯一的名称。
@JS('Chart')
表示加载的 chart.js 库在 JavaScript 领域中可用window.Chart
(window
表示 JS 领域中的全局并且是隐式的)。
@JS()
class Chart {
声明一个 Dart 类Chart
,并将@JS()
其映射到上面声明的库范围内同名的 JS 类。所以 Dart 类Chart
将映射到 JavaScript 类window.Chart.Chart
。
external factory Chart(
external ...
Dart类中的声明Chart
映射到同名的 JS 方法。
更多细节可以在 README.md https://pub.dartlang.org/packages/js中找到。
如果您仍然卡住,您可以提出更具体的问题。很难回答有关如何使用包的一般问题。
推荐阅读
- ios - Xcode 11,Swift:警告无法在打开的 URL 上结束 BackgroundTask
- python - 使用两个数据框比较开始日期和结束日期之间的日期
- python - Tensorflow2.0:如何将rank(st_input)大于2的稀疏张量转换为RaggedTensor?
- python - 与持续运行的子进程交互
- android - java.text.parseException:无法解析的日期:2020-02-06T08:00:00
- java - 将 Xero 与银行 API 集成
- google-chrome - Magento 1.9 客户登录在 Chrome 中不起作用
- angularjs - 带有 ui-select 错误的 AngularJS - 错误:[ui.select:transcluded] Expected 1 ui-select-match but got 0
- android - smsManager.sendMultipartTextMessage 无法正常工作
- angular - Laravel websockets 角度为 8