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 <mdem...@gmail.com 
> <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 elm-discuss...@googlegroups.com <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 elm-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to