來
來自 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 傳遞