傳出
傳出埠用作命令,你可以從 update
函式返回。
榆樹邊
定義傳出埠:
port output : () -> Cmd msg
在這個例子中,我們傳送一個空的 Tuple,只是為了在 JavaScript 端觸發訂閱。
為此,我們必須應用 output
函式和空元組作為引數,以獲取命令以從 Elm 傳送傳出資料。
update msg model =
case msg of
TriggerOutgoing data ->
( model, output () )
JavaScript 方面
初始化應用程式:
var root = document.body;
var app = Elm.Main.embed(root);
訂閱具有相應名稱的埠:
app.ports.output.subscribe(function () {
alert('Outgoing message from Elm!');
});
注意
從 0.17.0
開始,從你的 initial
狀態直接傳送到 JavaScript 的訊息將不起作用。
init : ( Model, Cmd Msg )
init =
( Model 0, output () ) -- Nothing will happen
請參閱下面示例中的解決方法。