2012-12-12 15 views
10

Sono stato in grado di attivare un messaggio di avviso dal dardo, ma non riuscivo a capire come chiamare una funzione che ho scritto in un altro file js dal dardo. Questo sarebbe stato un ottimo punto di vendita se fosse diretto. Ho visto this post, che mi ha fatto iniziare, ma sento che ci deve essere un modo, quindi per favore condividi l'amore se lo hai capito.chiama javascript da Dart

Ecco che cosa ho fatto:

  1. aggiungere questo al file YAML:

    dipendenze: JS: ospitati: JS

  2. Add importazione dichiarazione a inizio file di dardo : import 'package: js/js.dart' come js;

  3. Aggiungere questo pezzo di codice per mostrare messaggio di avviso

    js.scoped (() { js.context.alert() "saltare di gioia!"; });

  4. ecco la parte che credo dovrebbe funzionare, ma non lo fa: dato che ho una funzione doSomething javascript(), dovrei essere in grado di chiamare

    js.context.doSomething();

risposta

10

Prima aggiungere l'js package come dipendenza nel tuo pubspec.yaml:

dependencies: 
    js: any 

quindi è possibile utilizzare la funzione propri js myFunc() così:

import 'package:js/js.dart' as js; 

main() { 
    js.context.myFunc(); 
} 

js.context è un alias a javascript window .

Vedere Using JavaScript from Dart: The js Library per ulteriori dettagli.

+1

E quando si importa, dovremmo specificare il prefisso per il funzionamento del codice sopra riportato: 'importa 'il pacchetto: js/js.dart' come js;' –

+0

Grazie di suggerirlo. Ho modificato la risposta. –

+0

cos'è js: 0.0.13 per e come è diverso da js: any – BraveNewMath