ELM:当我点击按钮时,点击按钮将HTML消息中的特定字符串移植到JS



我有型号

type alias Model =
{ 
url : String
, devices : List Device
, input : String
, isFilter : Bool
, deviceSuggestion : Maybe Device
}
type alias Device =
{ 
status : String
, license_plate : String
, device_id : String
}

下面是我的渲染视图,我想获得device_id和JS 的端口

renderPost : Device -> Html Msg
renderPost devices =
div []
[
[ text "Device_id : " 
, button [ onClick PortDeviceID ] [ text (Debug.toString devices.device_id) ]
, pre [] [ text "device_model : " , text (Debug.toString devices.device_model) ]  
, pre [] [ text "license_plate : " , text (Debug.toString devices.license_plate) ]
]
renderPosts : Model -> Html Msg
renderPosts model =
([ text "Device List" ] ++ List.map (device -> renderPost device) model.devices)

我的更新在这里。我不知道如何获取文本,因为devices.device_id来自json文件

PortDeviceID ->
( { model | deviceID = "" }, //port device_id --> not working)
GotResult result ->
case result of
Ok devices ->
( { model | devices = devices }, portDevice devices ) // this give full list

我想这样做,当我点击按钮时,我可以将特定的device_id移植到JS。问题是它在Device -> Html Msg format中,所以我坚持哈哈。有什么想法吗?感谢您的帮助

此处解决的案例,在View中,我喜欢下面,实例化devices.device_id

renderPost : Device -> Html Msg
renderPost devices =
div []
[
[ text "Device_id : " 
, button [ onClick (PortDeviceID devices.device_id)] [ text (Debug.toString devices.device_id) ]

然后在更新中,同样让portDeviceID String

PortDeviceID deviceID->
( { model | deviceID = "" }, portDeviceID deviceID )

无论如何,感谢Jack Leow 的帮助

最新更新