2014-12-05 101 views
2

飛鏢類我有一個飛鏢類(foo.dart):使用從JavaScript

class Foo { 
    void talk() { 
    print('Hello'); 
    } 
} 

編譯foo.dart到JavaScript之後,我希望能夠使用美孚這樣的:

var foo = new Foo(); // from foo.dart.js 
foo.talk() // prints "Hello" 

我的問題:

  • 這是目前可能嗎?
  • 如果是這樣,怎麼樣?
  • 如果沒有,有什麼計劃,如果有的話,是否有可能?

鏢:JS庫文件states

該庫還沒有做出飛鏢對象從JavaScript,他們的方法和proeprties [原文]可用不可訪問,但它允許達特功能被傳入JavaScript並調用。

「yet」這個詞提供了一些希望,但我在其他任何地方發現這個主題很少。

編輯:

我意識到這是可能使用dart2js從JavaScript調用飛鏢功能。但是,我試圖做的是有些不同。我希望能夠通過JavaScript訪問Dart類的所有功能。

+0

看到http://stackoverflow.com/questions/21936318 – 2014-12-05 17:15:14

+1

見https://github.com/dart- lang/js-interop – 2014-12-05 17:28:20

回答

2

由於顫抖和縮小,這通常是不可能的。如果你有一個飛鏢應用程序(具有main()那麼您就可以將一個飛鏢功能,從JavaScript(見How to call a Dart function from Javascript?爲例)被調用。

據我所知,有計劃地支持你的要求,但我有不知道有關進度或當這樣的功能可能是可用的。

這是相關的項目https://github.com/dart-lang/js-interop

+0

js-interop包看起來像是需要一個Dart vm。這是真的嗎?我問,因爲文檔測試.html f ile使用Dart腳本https://github.com/dart-lang/js-interop#loading-the-generated-javascript – 2014-12-05 18:31:16

+0

您必須在項目目錄中運行'pub build'以將其構建爲JavaScript。 – 2014-12-05 18:32:12