来
来自 JavaScript 的传入数据正在通过订阅进行。
榆树边
首先,我们需要使用以下语法定义传入端口:
port input : (Int -> msg) -> Sub msg
如果我们有多个订阅,我们可以使用 Sub.batch
,这个例子只包含一个订阅 input port
subscriptions : Model -> Sub Msg
subscriptions model =
input Get
然后你必须将 subscriptions
传递给你的 Html.program
:
main =
Html.program
{ init = init
, view = view
, update = update
, subscriptions = subscriptions
}
JavaScript 方面
初始化应用程序:
var root = document.body;
var app = Elm.Main.embed(root);
发送消息给榆树:
var counter = 0;
document.body.addEventListener('click', function () {
counter++;
app.ports.input.send(counter);
});
注意
请注意,从 0.17.0
开始,应用初始化后的即时 app.ports.input.send(counter);
将无效!
使用 Html.programWithFlags
将启动时所需的所有数据作为 Flags 传递