Functional programming 如何在Elm中动态创建输入?

Functional programming 如何在Elm中动态创建输入?,functional-programming,frp,elm,Functional Programming,Frp,Elm,我想创建一个按钮,当按下该按钮时,它会向表单中添加一个新的输入(或文本区域)。如果您希望每次单击按钮时都添加一个文本字段,这意味着您希望显示的文本字段数等于该按钮被单击的次数。我们可以创建一个信号,通过在按钮的点击的信号上使用countIf id来告诉我们点击按钮的频率 如果我们有一个输入列表,我们可以使用flow将它们显示在彼此下方(或之外)。编写一个函数非常简单,它接受一个数字n,并生成一个包含按钮和n文本字段的列表 所以现在我们可以使用lift将该功能与我们的信号挂钩,该信号统计按钮点击的

我想创建一个按钮,当按下该按钮时,它会向表单中添加一个新的输入(或文本区域)。

如果您希望每次单击按钮时都添加一个文本字段,这意味着您希望显示的文本字段数等于该按钮被单击的次数。我们可以创建一个信号,通过在按钮的
点击的
信号上使用
countIf id
来告诉我们点击按钮的频率

如果我们有一个输入列表,我们可以使用
flow
将它们显示在彼此下方(或之外)。编写一个函数非常简单,它接受一个数字
n
,并生成一个包含按钮和
n
文本字段的列表

所以现在我们可以使用
lift
将该功能与我们的信号挂钩,该信号统计按钮点击的次数,将其与
flow
功能结合起来,瞧,我们有一个按钮可以动态创建输入

(btn,点击)=输入。按钮“点击我!”
--计算单击的信号为真的频率
单击=如果单击了id,则计数
main=提升流量2(恒定下降)$提升流量
尼恩=
让助手n acc=

如果从Elm 0.8开始n。请参阅和的输入组部分。

注意,Elm不支持信号的信号。如果要存储文本字段的输入信号,可以使用自动机库: