目前我正在尝试榆树(所以请考虑我是初学者)并且对以下内容感到疑惑,
我定义了以下模型:
model = foldp update initialModel actions.signal
我理解foldp
的工作原理,只要执行某个操作(从我的html按钮调用等),它就会调用我的更新方法更改initialModel
。
然而,现在我很难找到如何将按键集成到此模型中,因为foldp
只接受一个变化的信号。
所以我想得到这样的东西
model = foldp update initialModel (actions.signal + Keyboard.arrows)
我尝试使用merge
方法,但我似乎无法使其正常工作。
谢谢!
答案 0 :(得分: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
答案 1 :(得分:0)
您想使用Signal.merge - 请查看http://elm-lang.org/guide/reactivity#signals以获取信号图概述