Dart-CodeRückkehr anonyme JS-Funktion, die von Dart
import 'dart:html' as html;
import 'dart:js' as js;
import 'package:js/js.dart';
void main() {
var data = new AddLocationData(locationName: "Location1", locationPath: "ThisFolder");
var func =() => data;
html.window.console.log(func);
html.window.console.log(func());
}
@JS("")
@anonymous
class AddLocationData {
external String get locationName;
external String get locationPath;
external factory AddLocationData({String locationName, String locationPath});
}
Sie Javascript Ebene Objekt zurückgibt würde davon ausgehen, dass func
eine js Funktion sein wird, aber es ist nicht. Sein Typ/Name ist main_closure
. Siehe Screenshot
So die ersten beiden Zeilen von Dart-Code gedruckt wurden dann verwendet, ich Chrome Element Fenster prüfen und rechts angeklickt main_closure' and selected "Store as global variable" which then printed
temp1` und dann habe ich es einige Informationen über den generierten Code anzuzeigen.
So ist klar, Dart hat ein Objekt und nicht eine js-Funktion zurückgegeben und so ist der Grund, diese Frage zu stellen. So
Ich mag temp1
eine Funktion statt temp1.call$0
sein, so dass ich die Daten von temp1()
Aufruf bekommen und nicht temp1.call$0()
.
Danke 'var func = js.allowInterop (() => Daten);' das Problem behoben: D – adeel41