【问题标题】:Elm: preserve type of values in HTML select?榆树:在 HTML 选择中保留值的类型?
【发布时间】:2017-01-13 19:31:53
【问题描述】:

在 AngularJS 中,ng-options 允许指定任何值的数组,而不仅仅是字符串,同时保留类型。例如,我可以在整数数组上使用ng-options 创建一个HTML select。选择一个选项时,将整数 em>值放入模型 - 无字符串到int转换中。

在 Elm 中,选项的 value 属性只接受一个字符串,因此 selectonInput 事件会返回一个字符串。然后我必须手动将其转换为 int。

Elm 是否有任何与 AngularJS 的 ng-options 等效的东西?或者以任何方式使用具有任意甚至非标量值的select

【问题讨论】:

  • 好吧,我不确定你是否想使用它,但我确实以博客和包的形式练习了这个问题。

标签: elm


【解决方案1】:

真的没有办法做到这一点。您将不得不从一个字符串解析为您想要的类型并返回。您可以使用基于Prism 的API 包装<select>

给我几个小时,我会在下班后为此编写一个小型库...:D

编辑:

包 - http://package.elm-lang.org/packages/toastal/select-prism/latest

博文 - https://toast.al/posts/2017-01-13-playing-with-prisms-for-the-not-so-isomorphic.html

【讨论】:

  • 这很有帮助。我是 Elm 的新手,还没有遇到 Prism,所以我肯定会更多地研究这个。也感谢您的博文!
  • 带上一粒盐。一些 FP 人员并不认为光学是最佳实践——其他人则喜欢它。您可以使用显式的 get/set 参数轻松地重新实现这个库,而不是传入一个 Prism,但是在其中学习新东西有什么乐趣呢??
【解决方案2】:

您可能还对我的 elm-select 助手库感兴趣。它并没有做所有很酷的棱镜/镜头的东西,但在某些情况下它可能更简单:

http://package.elm-lang.org/packages/lgastako/elm-select/1.0.0/Select

这里有完整的示例代码:

https://github.com/lgastako/elm-select/blob/master/src/Main.elm

【讨论】:

  • 这也不错。我很生气,你认为镜头和棱镜“很酷”。 :)
  • 这太棒了!我接受@toastal 的回答是因为它的深度,但老实说,我可能最终会使用你的库,因为它很简单。谢谢!
猜你喜欢
  • 1970-01-01
  • 2018-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-10
  • 2018-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多