Elm/html:不同类型元素的有序列表

Elm/html:不同类型元素的有序列表,elm,Elm,我在看一些榆树的例子,我发现。我想把它改成包含复选框,这样就有了一个带有计数器和/或复选框的列表。每个都有自己的操作和模型(例如名称和选中的bool)。最重要的是,我想订购列表,以便选中的复选框都出现在顶部,底部未选中,中间的计数器。 但是,我找不到任何关于如何做和构造这个的例子。有什么帮助吗 注意:我对Elm(以及一般的函数式编程)非常陌生 谢谢 实现这一点的一种方法是为项目使用联合类型(未经测试,我现在没有Elm环境来检查这一点): 根据项目的类型,可以将其渲染为 viewItem item

我在看一些榆树的例子,我发现。我想把它改成包含复选框,这样就有了一个带有计数器和/或复选框的列表。每个都有自己的操作和模型(例如名称和选中的bool)。最重要的是,我想订购列表,以便选中的复选框都出现在顶部,底部未选中,中间的计数器。

但是,我找不到任何关于如何做和构造这个的例子。有什么帮助吗

注意:我对Elm(以及一般的函数式编程)非常陌生


谢谢

实现这一点的一种方法是为项目使用联合类型(未经测试,我现在没有Elm环境来检查这一点):

根据项目的类型,可以将其渲染为

viewItem item =
   case item of
     Counter value -> renderCounter value
     CheckBox name state -> renderCheckbox name state
视图只需为每个项目调用viewItem,对项目进行排序,并将所有内容放入容器(例如div)中:

viewItem item =
   case item of
     Counter value -> renderCounter value
     CheckBox name state -> renderCheckbox name state
view address model =
  let 
    items = List.map (viewItem address) model.items 
            |> List.sort (your custom sorting here)
  in
      div [] ([remove, insert] ++ items)