index.html(头)
<script> var callDartMethod = function(dartObject) { return dartObject.fullName(); } </script>
index.dart
import 'package:js/js.dart'; @Js() // about to being changed to @JS external String callDartMethod(p); main() { final p = Person.create(firstName: 'Günter',lastName: 'Zöchbauer'); print(callDartMethod(p)); // indirect call from JS // print(p.fullName()); // call from Dart directly } @Js() // about to being changed to @JS class Person { external String get firstName; external set firstName(String firstName); external String get lastName; external set lastName(String lastName); external Function get fullName; external set fullName(Function function); external factory Person({String firstName,String lastName}); static Person create({String firstName,String lastName}) => new Person(firstName: firstName,lastName: lastName) // works but feels a bit cumbersome ..fullName = allowInteropCaptureThis(fullNameImpl); static String fullNameImpl(self) => '${self.firstName} ${self.lastName}'; }
解决方法
简答:不.
pkg / js目前专注于让Dart应用程序使用JavaScript库.
我们希望能够更轻松地将用Dart编写的API导出到JavaScript使用者,但这将在以后出现.