【问题标题】:Using Dart classes from JavaScript在 JavaScript 中使用 Dart 类
【发布时间】:2015-02-03 22:27:16
【问题描述】:

我有一个 Dart 类 (foo.dart):

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

将 foo.dart 编译为 JavaScript 后,我​​希望能够像这样使用 Foo:

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

我的问题:

  • 目前可以吗?
  • 如果是,怎么做?
  • 如果没有,有什么计划(如果有的话)来实现它?

dart:js 库文档states:

这个库还没有让 Dart 对象在 JavaScript 中可用,它们的方法和属性 [原文如此] 不可访问,尽管它允许 Dart 函数被传递到 JavaScript 中并从 JavaScript 中调用。

“还”这个词带来了一些希望,但我在其他任何地方都找不到关于这个主题的任何内容。

编辑:

我确实意识到可以使用 dart2js 从 JavaScript 调用 Dart 函数。但是,我想要做的有些不同。我希望能够从 JavaScript 访问 Dart 类的所有功能。

【问题讨论】:

标签: dart dart-js-interop


【解决方案1】:

由于 tree-shaking 和缩小,这通常是不可能的。如果你有一个 Dart 应用程序(带有main(),那么你可以让一个 Dart 函数可以被 JavaScript 调用(参见How to call a Dart function from Javascript? 的例子)。

据我所知,有计划支持您的要求,但我不知道进展情况或此类功能何时可用。

这是相关项目https://github.com/dart-lang/js-interop

【讨论】:

  • js-interop 包看起来需要一个 Dart vm。这是真的?我问是因为文档测试 .html 文件使用 Dart 脚本github.com/dart-lang/…
  • 您必须在项目目录中运行 pub build 才能将其构建为 JavaScript。
  • 嘿 Günter,你知道这方面有什么更新吗?
  • @Tobika 并没有真正改变
猜你喜欢
  • 2016-07-28
  • 2018-12-10
  • 2013-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多