参数,Html复选框接受榆树
parameters, Html checkbox takes in elm
这是取自 elm 复选框的视图片段 examples -
view address model =
div [] <|
span [toStyle model] [text "Hello, how are yo?"]
:: br [] []
:: checkbox address model.red Red "red"
++ checkbox address model.underline Underline "underline"
++ checkbox address model.bold Bold "bold"
checkbox : Address Action -> Bool -> (Bool -> Action) -> String -> List Html
checkbox address isChecked tag name =
[ input
[ type' "checkbox"
, checked isChecked
, on "change" targetChecked (Signal.message address << tag)
]
[]
, text name
, br [] []
]
1) 我明白了,double colons
和 double plus
是用来连接列表的?它们之间有何不同?
2) 在checkbox
这一行的函数中,(Signal.message address << tag)
,tag
解绑到什么?是 Red
(或)red
?这个参数有什么用?
3) address
函数接受的参数类型是什么?
回答
- 双冒号
(::)
将单个元素添加到列表的开头。
双加 (++)
连接两个列表。
当从 checkbox address model.red Red "red"
调用 checkbox
时,tag
将等于 Red
。 Red
是从 Bool
到 Action
的函数。它将复选框的事件包装在此数据构造函数中,以便稍后在 update
函数中,您可以将该复选框的事件与其他复选框的事件区分开来。
address
不是函数。它的类型为 Address Action
,这意味着它包含可以接收 Action
消息的邮箱地址。这个 "mailbox" 在代码中是不可见的,它被 StartApp
内部使用,它在 main
函数中使用。
代码参考
即使链接示例发生变化,为了让这个问题有用,这些是我所指的相关代码部分:
update
函数:
update action model =
case action of
Red bool ->
{ model | red <- bool }
Underline bool ->
{ model | underline <- bool }
Bold bool ->
{ model | bold <- bool }
Action
类型:
type Action
= Red Bool
| Underline Bool
| Bold Bool
main
函数:
main =
StartApp.start { model = initialModel, view = view, update = update }
这是取自 elm 复选框的视图片段 examples -
view address model =
div [] <|
span [toStyle model] [text "Hello, how are yo?"]
:: br [] []
:: checkbox address model.red Red "red"
++ checkbox address model.underline Underline "underline"
++ checkbox address model.bold Bold "bold"
checkbox : Address Action -> Bool -> (Bool -> Action) -> String -> List Html
checkbox address isChecked tag name =
[ input
[ type' "checkbox"
, checked isChecked
, on "change" targetChecked (Signal.message address << tag)
]
[]
, text name
, br [] []
]
1) 我明白了,double colons
和 double plus
是用来连接列表的?它们之间有何不同?
2) 在checkbox
这一行的函数中,(Signal.message address << tag)
,tag
解绑到什么?是 Red
(或)red
?这个参数有什么用?
3) address
函数接受的参数类型是什么?
回答
- 双冒号
(::)
将单个元素添加到列表的开头。
双加(++)
连接两个列表。
当从 tag
将等于Red
。Red
是从Bool
到Action
的函数。它将复选框的事件包装在此数据构造函数中,以便稍后在update
函数中,您可以将该复选框的事件与其他复选框的事件区分开来。address
不是函数。它的类型为Address Action
,这意味着它包含可以接收Action
消息的邮箱地址。这个 "mailbox" 在代码中是不可见的,它被StartApp
内部使用,它在main
函数中使用。
checkbox address model.red Red "red"
调用 checkbox
时,代码参考
即使链接示例发生变化,为了让这个问题有用,这些是我所指的相关代码部分:
update
函数:
update action model =
case action of
Red bool ->
{ model | red <- bool }
Underline bool ->
{ model | underline <- bool }
Bold bool ->
{ model | bold <- bool }
Action
类型:
type Action
= Red Bool
| Underline Bool
| Bold Bool
main
函数:
main =
StartApp.start { model = initialModel, view = view, update = update }