Thanks for the response, it totally works, and I definitely think it is 
cleaner than having to Html.map everything! I am still trying to fully 
understand what is going on, pretty new to Elm. I kinda get what you are 
doing in the update to map the command,         

( { model | field2 = "2" }, Cmd.map cfg.lift pageTwoCmd ) 

but how does that happen in the view? How does this cfg.lift which is lift 
: Page1Msg -> msg work here?

        div [ onClick (cfg.lift <| DoSomething1) ] [ text model.field2 ]






On Tuesday, January 24, 2017 at 7:18:29 AM UTC-8, Peter Damoc wrote:
>
> You can use Config objects for both the update and view functions from 
> each page and just lift everything to the top message. 
> I have commented on your gist with how this would look. 
>
> Please note that I have removed the Navigate cmd from your Pages, if you 
> want, you can put it back. 
> I also added a couple of typed Cmds to show how to use the lift in 
> `update` 
>
>  
>
>
>
> On Tue, Jan 24, 2017 at 5:31 AM, Maksim Demin <[email protected] 
> <javascript:>> wrote:
>
>> Hi,
>>
>> I am trying to figure out the best way to build up pages that have very 
>> little in common, but need to share something, i.e. a nav bar. The pages 
>> don't share messages or models, what would be the best way to implement a 
>> nav across both pages, and perhaps more pages in the future. 
>>
>> I came up with two approaches. 
>>
>> The first is to put the navigation messages at the top Msg and have all 
>> the pages map their Html to return the top level Msg's. I think this is 
>> cool because it avoids replicating the messages across the pages, but you 
>> end up with a bunch of Html.maps to convert everything to the top level Msg 
>> (The docs say "This should not come in handy too often." which got me 
>> thinking of how else to do this) . 
>>
>> The second approach is to have each page implement all the messages for 
>> the nav and in the pages respective update. This seems like a bunch of 
>> duplication as the nav grows and does not seem like a good approach. 
>>
>> Is there a better way to do this kind of thing? 
>>
>> Here is some example code of what I mean 
>> https://gist.github.com/mdemin914/0baf793dce856ffe57ce31979ad600d6. 
>>
>> Any thoughts are appreciated.
>>
>> -- 
>> 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] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> -- 
> There is NO FATE, we are the creators.
> blog: http://damoc.ro/
>

-- 
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