传出

传出端口用作命令,你可以从 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

请参阅下面示例中的解决方法。