如何从Elm中的Html.Attribute中提取值

如何从Elm中的Html.Attribute中提取值,elm,Elm,当我想在Html中读取属性时。 我想做一个自定义标签,如下所示 myTag : List ( Html.Attribute msg ) -> List ( Html msg ) -> Html msg myTag attributes children = -- case attributes has "src" show button with image -- otherwise show normal button 所以当我调用myTag时,如果我指定了sr

当我想在Html中读取属性时。 我想做一个自定义标签,如下所示

myTag : List ( Html.Attribute msg ) -> List ( Html msg ) -> Html msg
myTag attributes children = 
    -- case attributes has "src" show button with image
    -- otherwise show normal button
所以当我调用myTag时,如果我指定了src,我会自动获取带有图像的按钮,例如

myTag [ src="somepic.jpg" ][]  -- show a button with image

我试图调试以查看Html.Attribute中的内容。它包含a2或a3之类的内容。但是,我不知道如何提取,我认为这是从这些值中提取的字符串。类型是不透明的。没有任何信息可以从中提取出来供Elm应用程序内部使用,因为该包无法从Elm代码中提取数据或检查属性值

是的,您可以使用javascript调试器查看Elm代码是如何编译成javascript的,但这对从Elm代码中解构属性类型没有多大帮助

如果要检查属性,我建议使用Dict字符串作为属性参数:

myTag : Dict String String -> List ( Html msg ) -> Html msg
字体是不透明的。没有任何信息可以从中提取出来供Elm应用程序内部使用,因为该包无法从Elm代码中提取数据或检查属性值

是的,您可以使用javascript调试器查看Elm代码是如何编译成javascript的,但这对从Elm代码中解构属性类型没有多大帮助

如果要检查属性,我建议使用Dict字符串作为属性参数:

myTag : Dict String String -> List ( Html msg ) -> Html msg

Elm需要隐藏Html.Attribute而不是自由提取值,有什么特别的原因吗?它没有公开,因为它是在虚拟dom包内部使用的数据结构。公开内部结构将使在不破坏外部代码的情况下对包进行更改变得更加困难。除非有充分的理由将内部实现细节公开,否则最好始终保持其私有性。Elm是否有任何特殊原因需要隐藏Html.Attribute而不是自由提取值?它不会公开,因为它是在虚拟dom包内部使用的数据结构。公开内部结构将使在不破坏外部代码的情况下对包进行更改变得更加困难。除非有充分的理由公开内部实现细节,否则最好将其保密。