What I've done is this:

   - Change the Model to have selectedContactId
   - Change renderContact to also take in the currently selected ID
   

|> List.map (renderContact model.selectedContactId)

The renderContact function can check if the selectedContactId is equal to 
the current item's ID and render it checked if so.

You can also add an onClick function to change the selectedContactId.

On Sunday, November 6, 2016 at 3:00:05 AM UTC-6, Did wrote:
>
> Hi there,
>
> is there a way for a parent module to "subscribe" to a child module 
> "event"? Here is the thing : I want to create a contact list. For that, I 
> have a component named ContactList. Inside, I display all contacts like 
> this :
>
> renderContact: Contact.Model -> Html a
> renderContact contact =
>     li [] [Contact.view contact]
>
> renderContacts: Model -> Html a
> renderContacts model =
>     model.contacts
>     |> List.map renderContact
>     |> ul []
>
> view: Html a
> view =
>     div [] [
>         renderContacts model
>     ]
>
> You can see that a contact is rendered by the Contact module, like this :
>
> type alias Model = {
>     firstname  : String
>    ,name       : String
>    ,phonenumber: String
> }
>
> view: Model -> Html a
> view model =
>      span[]
>      [
>          a [style contactfield] [text <| model.firstname ++ " " ++ 
> model.name]
>         ,span [style contactfield] [text <| model.phonenumber]
>      ]
>
> I would like to interact with the "a" element so that when the user click 
> on it, it displays details about the selected contact. I started to write 
> something like this :
>
> type alias Model = {
>     id: Int
>    ,firstname  : String
>    ,name       : String
>    ,phonenumber: String
> }
>
> view: Model -> Html a
> view model =
>      span[]
>      [
>          a [style contactfield, on "click" (Json.map fetchDetail 
> decodename), attribute "data-value" model.id)] [text <| model.firstname 
> ++ " " ++ model.name]
>         ,span [style contactfield] [text <| model.phonenumber]
>      ]
>
> Here, my model has improved with a new property : id. But the Contact 
> module is not aware of any list of contacts, so I can't apply any filter in 
> order to fetch the desired contact. Is there a way to simply realize this? 
> Or maybe I'm on a totally wrong way...
>
> Thanks!
>

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to