2014-04-16 20 views
9

Moja firma ma bardzo wadliwą aplikację klienta tłuszczu napisaną w Javascript. Jak zwykle w przypadku dużej aplikacji javascript, kod szybko staje się niemożliwy do zarządzania.Wywołanie kodu darta z javascript

Osobiście uważam, że pisanie w Dart byłoby znacznie lepszym rozwiązaniem. Ale podejście "zacząć od nowa" do zarządzania nie zadziała.

Wiem, że można wywołać kod javascript z Dart, ale czy można wywołać kod darta z JavaScript?

Pozwoliłoby nam to stopniowo wymieniać bardziej krytyczne biblioteki na wersje Dart i nadal móc korzystać z oryginalnej podstawy kodu.

Dzięki Richard

Odpowiedz

12

Powinieneś wypróbować Dart'a JS interop library.

Możesz zdefiniować funkcję zwrotną wewnątrz Dart i wyeksportować ją (w pewnym sensie) do JavaScript.

Spójrz na ten przykład:

kod Dart definiuje funkcję JS

context['javascriptFunctionName'] = (parameter) { 
     //call any Dart method 
    } 

następnie połączyć go z JavaScript:

javascriptFunctionName({'param': 'value'}); 
+2

Możesz znaleźć prosty przykład tego projektu na https://github.com/hangstrap/TestJavascriptCall Dzięki za pomoc! – richard

-4

Dopóki to swoje obowiązkowe linie dart w plikach HTML:

<script type="application/dart" src="fileName.dart"></script> 
<script src="packages/browser/dart.js"></script> 

powinieneś być w stanie dodać kod zastępczy dart i skompilować. W ten sposób możesz zacząć konwertować bit po bicie. Zgodnie z moją wiedzą, nie ma sposobu na wywołanie kodu dart z JavaScriptu.


Teraz, gdy mam trochę więcej czasu, pozwól mi wyjaśnić nieco. Ponieważ Dart jest stosunkowo nowym językiem, wraz z tym, że nie tyle dodaje nic do języka JavaScript, nie ma zbyt wiele zachęt dla Oracle, aby dodać kompatybilność krzyżową z Dart. Chociaż oba języki mogą nie być kompatybilne, mogą współistnieć razem i mieć bardziej jednokierunkową relację.

Tak długo, jak wywołujesz kod dart bezpośrednio z plików html lub innych funkcji dart, możesz przynajmniej rozpocząć proces integracji dartu z witryną. Następnie, w miarę upływu czasu, powinieneś być w stanie rozpocząć długi proces aktualizowania JavaScriptu do rzutek, jeśli jest to kierunek, w którym zdecydujesz się podjąć.

+0

Dzięki, myślę, że działa dart i Javascript w tej samej stronie jest początek, ale muszę być w stanie wywołać funkcje Dart z kodu Javascript. Nasza aplikacja jest znacznie bardziej złożona, ponieważ kilka javascriptowych lub dartowych funkcji zwisa z kilku elementów dom ... – richard

+2

Co Oracle ma wspólnego z tym wszystkim? –

Powiązane problemy