暴露飞镖功能的JavaScript(Expose Dart functions to javascr

2019-07-28 17:34发布

我有点福利局的镖,并且试图让我的脚湿由它写一些库函数。

虽然我已经没有问题,呼吁从DART JavaScript函数,我很想能够从JavaScript调用镖功能,但到目前为止,我没有很想。

比如,我喜欢能够从镖暴露了一些基本功能,比如像这样:

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

  js.scoped(() {
    js.context.foo = foo;
  });
}

然后就可以从javascript调用它们,就像这样:

<script>
  window.onload = function() {
    alert("foo() = " + foo());
  }
</script>

是这样甚至可能吗?

Answer 1:

没问题 ! 看到从JavaScript调用飞镖 。

你的情况:

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

  js.context['foo'] = foo;
}


Answer 2:

在DART 1.20我不得不添加allowInterop()

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

  js.context['foo'] = allowInterop(foo);
}


文章来源: Expose Dart functions to javascript