Будет ли Dart поддерживать использование существующих библиотек JavaScript? - PullRequest
103 голосов
/ 10 октября 2011

Я понимаю, что Dart компилируется в JavaScript, и я прочитал Dart Language Spec в библиотеках, хотя я не увидел там ответа. Кроме того, поиск в их форме обсуждения слова "существующий" обнаруживает 3 несвязанных результата.

Кто-нибудь знает, будет ли Dart поддерживать использование существующих библиотек JavaScript, таких как jQuery или Raphael?

Ответы [ 5 ]

94 голосов
/ 06 января 2012

Ответ теперь да!Теперь Dart поставляет библиотеку JS-interop для использования существующего кода JavaScript с вашим приложением Dart.Узнайте больше здесь: https://www.dartlang.org/articles/js-dart-interop/

15 голосов
/ 11 октября 2011

Вы не сможете вызывать javascript напрямую из кода дротика. Нативная директива зарезервирована для базовых библиотек dartc (dart: core, dart: dom, dart: html, dart: json и т. Д.), Которая сама компилируется в javascript.

8 голосов
/ 30 октября 2015

Теперь появился новый более простой способ https://pub.dartlang.org/packages/js (в настоящее время версия 0.6.0-бета.6)

Сделать классы и функции JS доступными для Dart, например:

@JS("JSON.stringify")
external String stringify(obj);
@JS('google.maps')
library maps;

// Invokes the JavaScript getter `google.maps.map`.
external Map get map;

// `new Map` invokes JavaScript `new google.maps.Map(location)`
@JS()
class Map {
  external Map(Location location);
  external Location getLocation();
}

// `new Location(...)` invokes JavaScript `new google.maps.LatLng(...)`
//
// We recommend against using custom JavaScript names whenever
// possible. It is easier for users if the JavaScript names and Dart names
// are consistent.
@JS("LatLng")
class Location {
  external Location(num lat, num lng);
}

Подробнее см. В файле Readme пакета

4 голосов
/ 27 декабря 2013

Существует также библиотека dart:js.А вот статья , объясняющая, как использовать эту библиотеку для взаимодействия с JavaScript.

4 голосов
/ 10 октября 2011

Смотрите эту ветку на форуме: Вызов старого кода JavaScript .

...