【问题标题】: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
});
};