ELM: кнопка Onlick для переноса определенной строки в сообщении HTML на JS, когда я нажимаю кнопку - PullRequest
1 голос
/ 10 марта 2020

У меня есть модель

   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

Я хочу сделать, как, когда я нажимаю кнопку, то я могу портировать специфику c device_id до JS. Дело в том, что это в Device -> Html Msg format, так что я застрял, лол. Есть идеи, чтобы сделать это? Любая помощь приветствуется!

1 Ответ

1 голос
/ 10 марта 2020

Дело решено здесь, в 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 )

В любом случае спасибо за помощь Джек Леу

...