2013-02-10 8 views
5

Ich benutze Dart in einer Django-Anwendung. Es gibt Konfigurationsparameter, die an Dart übergeben werden müssen. Wie übermittelst du Werte an main()? An dieser Stelle überlege ich, versteckte Elemente auf der Webseite zu erstellen und Abfragen zu verwenden, um die Werte zu erhalten. Gibt es einen besseren Ansatz?Wie übergibt man in Dart Variablen an main?

Antwort

6

Klingt wie Sie einen Browser App bauen?

(BTW, können Sie new Options().arguments für Kommandozeilen-Apps nutzen. Funktioniert prima, aber natürlich ist es keine Befehlszeile in Browser apps :)

(Zweite, main() keine Argumente angenommen hat, so müssen wir uns finde einen anderen Weg.)

OK, für eine Browser-App könnte ich versuchen, etwas JSON in die Seite innerhalb eines <script> Tags einzubetten. Suchen Sie dann mithilfe der Abfrage dieses Element, parsen Sie den Inhalt, und Sie können loslegen.

In Ihrem HTML:

<script id="config"> 
    {"environment":"test"} 
</script> 

Und in der Dart-Datei:

import 'dart:html'; 
import 'dart:json' as json; 

void main() { 
    var config = json.parse(query("#config").innerHtml); 

    print(config['environment']); 
} 

Hoffnung, das hilft!

+0

Danke. Das ist sauberer als das, was ich mir vorgenommen habe. –

+0

Dies ist ein guter Ansatz. Der andere ähnliche Ansatz besteht darin, AJAX/WebSocket zum Abrufen der Konfiguration vom Server zu verwenden. Der Vorteil ist, dass Sie keine Skript-Tags einbetten müssen, aber der Nachteil ist, dass Latenzzeiten hinzukommen. Ich mag Seths Ansatz am meisten. Ich habe auch die Angewohnheit, das Skript-Tag * nach der Verwendung * zu entfernen. –

+0

wird nicht die '{" Umgebung ":" test "}' einen Syntaxfehler erzeugen – srcspider

Verwandte Themen