将Dart函数公开给javascript

Mas*_*ant 13 dart dart-js-interop

我有点像飞镖,并试图通过在其中编写一些库函数来弄湿我的脚.

虽然我从dart调用javascript函数没有问题,但我希望能够从javascript调用dart函数,但到目前为止,我没有太多喜欢.

例如,我希望能够从dart中公开一些基本功能,例如:

main() {
  String foo() {
    return "bar!";
  }

  js.scoped(() {
    js.context.foo = foo;
  });
}
Run Code Online (Sandbox Code Playgroud)

然后能够从javascript中调用它们,如下所示:

<script>
  window.onload = function() {
    alert("foo() = " + foo());
  }
</script>
Run Code Online (Sandbox Code Playgroud)

这样的事情甚至可能吗?

Ale*_*uin 9

没问题 !请参阅从JavaScript调用Dart.

在你的情况下:

import 'dart:js' as js;
main() {
  String foo() {
    return "bar!";
  }

  js.context['foo'] = foo;
}
Run Code Online (Sandbox Code Playgroud)

  • 链接文档"从JavaScript调用Dart"中未提及回调.它被删除了吗? (4认同)