3

Elmで1つのイベントハンドラーで複数の入力ハンドルをトリガーすることは可能ですか? たとえば、次のものがあるとします。

button 
    [ type' "button", on "click" getAnything go.handle (\_ -> searchInput) ] 
    [ text "Go" ]

この場合、[Go] ボタンをクリックすると、値がgo入力に送信されます。私が望むのは、同じクリック イベント (たとえば、go2入力) で別の入力に別の値を送信することです。

入力を結合するか、1 つの入力を複数の信号にファンアウトさせる方法はありますか?

4

1 に答える 1

1

1 つの入力を複数の信号にファンアウトすることができます。入力を組み合わせる方法がわかりません。

ファンアウトとは、基本的に、2 つの異なる値をタプルでラップして同じ入力に送信することを意味します。次に、入力を複数のシグナルにファンアウトするには、次のようなものが必要です。

signalUnzip : Signal (this,that) -> (Signal this, Signal that)
signalUnzip signal = (fst <~ signal, snd <~ signal)

go : Input (String,Int)
go = input ("",0)

(goFanoutPart1,goFanoutPart2) = signalUnzip go.signal
-- goFanoutPart1 : Signal String, goFanoutPart2 : Signal Int
于 2014-11-05T07:41:29.740 に答える