榆树:在foldp中组合actions.signal和键盘输入

时间:2015-12-04 13:23:55

标签: elm keyboard-input

目前我正在尝试榆树(所以请考虑我是初学者)并且对以下内容感到疑惑,

我定义了以下模型:

model = foldp update initialModel actions.signal

我理解foldp的工作原理,只要执行某个操作(从我的html按钮调用等),它就会调用我的更新方法更改initialModel

然而,现在我很难找到如何将按键集成到此模型中,因为foldp只接受一个变化的信号。

所以我想得到这样的东西

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

我尝试使用merge方法,但我似乎无法使其正常工作。

谢谢!

2 个答案:

答案 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以获取信号图概述