2012-12-12 3 views
10

konnte ich eine Warnmeldung aus dart abzufeuern, aber konnte nicht herausfinden, wie man eine Funktion, die ich aus dart in einer anderen js Datei geschrieben nennen. Dies wäre ein gutes Verkaufsargument gewesen, wenn es einfach gewesen wäre. Ich habe this post sehen, die hat mich begonnen, aber ich finde, dass es einen Weg geben muss, also bitte die Liebe teilen, wenn Sie es herausgefunden.Aufruf Javascript von Dart

Hier ist, was ich getan habe:

  1. Diese Datei yaml hinzufügen:

    Abhängigkeiten: js: Gastgeber: js

  2. Importparameteraddierroutine Erklärung nach oben dart-Datei : import 'Paket: js/js.dart' als js;

  3. dieses Stück Code hinzufügen

    js.scoped Warnmeldung zu zeigen (() { js.context.alert() "springen vor Freude!"; });

  4. Hier ist der Teil, den ich denke, sollte aber funktioniert nicht: da ich eine JavaScript-Funktion doSomething haben(), sollte ich in der Lage sein

    js.context.doSomething() zu nennen;

    dependencies: 
        js: any 
    

    Dann können Sie Ihre eigene js Funktion myFunc() so verwenden:

    import 'package:js/js.dart' as js; 
    
    main() { 
        js.context.myFunc(); 
    } 
    

    js.context ist ein Alias ​​für Javascript window

Antwort

10

zuerst die js package als Abhängigkeit in Ihrem pubspec.yaml hinzufügen .

Siehe Using JavaScript from Dart: The js Library für weitere Details.

+1

Und beim Importieren sollten wir das Präfix für den oben genannten Code angeben, um zu arbeiten: 'import 'Paket: js/js.dart' als js;' –

+0

Danke, das zu empfehlen. Ich habe die Antwort bearbeitet. –

+0

was js: 0.0.13 und wie ist so verschieden von js: any – BraveNewMath