【问题标题】:Create binding based on external JS基于外部JS创建绑定
【发布时间】:2018-05-23 20:51:03
【问题描述】:

this 帖子中,作者教授如何将 NodeJS 库绑定到 Reason。但是,我想为Google Maps Javascript API 创建一个绑定,它不能通过 NPM 安装。相反,它通常加载在<body> 的底部,带有<script> 标签。

此外,Google Maps Javascript API 仅将其函数导出到作为 url (callback=funcName) 中的参数传递的函数中。这在 Reason 中是否会像在原始 JS 中一样工作?

如何进行这种绑定?

【问题讨论】:

    标签: ffi reason bucklescript


    【解决方案1】:

    API 是作为全局安装的,因此您只需 bind to them as ordinary globals。由于 Reason 函数会生成普通的 JavaScript 函数,因此以下内容或多或少等同于您链接的文档中的示例:

    type map;
    [@bs.new] [@bs.scope ("google", "maps")] external make : (Dom.element, Js.t({..})) => map = "Map";
    
    let initMap = () => {
      let map = make(mapElement, {
        "center": { "lat": -34.397, "lng": 150.644 },
        "zoom": 0
      });
    };
    

    【讨论】:

    • 我去测试一下,尽快给你回复
    • 它成功了,我只需要添加一行绑定回调函数到window,基于这个问题:stackoverflow.com/a/40575947/1924257。我将编辑您的答案并接受它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多