2015-12-04 140 views
2

結合兩者actions.signal和鍵盤輸入目前我用榆樹實驗(所以認爲我是個初學者),並想了解以下,榆樹:在foldp

我已經定義了以下模型:

model = foldp update initialModel actions.signal 

我明白foldp是如何工作的,只要執行一個動作(從我的html按鈕等調用),它就會調用我的更新方法來更改initialModel

但是,現在我正在努力研究如何將按鍵整合到此模型中,因爲foldp只接受單個更改信號。

所以我想獲得這樣的

model = foldp update initialModel (actions.signal + Keyboard.arrows) 

我試着玩的merge方法,但我似乎沒有能夠得到它的工作。

謝謝!

回答

2

的概述鑑於你有一個actions郵箱,你有一個Action類型定義的呢?然後,您可以將其擴展爲包含一個Keypress操作:

type Action = 
    ... 
    | KeyPress { x : Int, y : Int } 

inputs = 
    Signal.merge actions.signal (Signal.map KeyPress Keyboard.arrows) 

model = 
    Signal.foldp update initialModel inputs 
+0

此功能完美無瑕!謝謝! –