2

目前我正在试验榆树(所以认为我是初学者)并且想知道以下内容,

我定义了以下模型:

model = foldp update initialModel actions.signal

我了解它是如何foldp工作的,它调用我的更新方法来更改initialModel每次执行操作(从我的 html 按钮等调用)。

但是,现在我正在努力找出如何将按键集成到这个模型中,因为foldp只接受一个变化的信号。

所以我想得到这样的东西

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

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

谢谢!

4

2 回答 2

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
于 2015-12-04T18:45:23.203 回答
0

您想使用 Signal.merge - 查看http://elm-lang.org/guide/reactivity#signals以了解信号图的概述

于 2015-12-04T18:35:22.843 回答