Elm HTML可选属性
如果Elm HTML可选属性,elm,Elm,如果containerClassName是可选的字符串,给定此html div [ class containerClassName ] [] 我如何使它成为可选的 例如,如果containerClassName为”,则省略该属性,以便生成的DOM不包含没有值的属性类。Elm/core具有著名的Maybe类型,您可以使用该类型对“可选”行为进行建模。因此,您的containerClassName应该使用可能的字符串类型 然后需要一个函数来包装类函数,并接受字符串 maybeCl
containerClassName
是可选的字符串
,给定此html
div
[ class containerClassName ]
[]
我如何使它成为可选的
例如,如果
containerClassName
为”
,则省略该属性,以便生成的DOM不包含没有值的属性类
。Elm/core
具有著名的Maybe
类型,您可以使用该类型对“可选”行为进行建模。因此,您的containerClassName
应该使用可能的字符串类型
然后需要一个函数来包装类
函数,并接受字符串
maybeClass: Maybe String -> List(Html.Attribute msg)
maybeClass maybeClassName =
case maybeClassName of
Just className ->
[class className]
Nothing ->
[]
你会像这样使用这个新函数
div
[] ++ (maybeClass containerClassName)
[]
请注意,我选择返回一个列表
类型,而不是一个属性
,因为Elm中没有“null”类型,但有一个空列表,当您用空列表附加列表时,它将执行您想要的操作。其中一个选项是使用Html.Attributes
中的函数,如果某个条件为True
,则包含一个类:
div
[ classList
[ (containerClassName, not (String.isEmpty containerClassName))
]
]
[]