传出
传出端口用作命令,你可以从 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
请参阅下面示例中的解决方法。