как использовать библиотеку JavaScript в дартс - PullRequest
0 голосов
/ 02 июля 2018

Я изучаю пакет : js и файл dart , который является оболочкой для dart для chart.js.

Я думаю, что этот файл является мостом, соединяющим дартс и JavaScript. Итак, в этом файле он должен сказать, к какой библиотеке javascript этот файл dart пытается подключиться. Я прав? Но я не нашел его.

Что означают следующие утверждения? Следующие два утверждения говорят, к какой библиотеке javascript этот файл dart пытается подключиться?

@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 Ответ

0 голосов
/ 02 июля 2018

Вам не нужно сопоставлять файл 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.

Если вы все еще застряли, вы можете задать более конкретные вопросы. Трудно ответить на общие вопросы о том, как использовать пакет.

...