Cette page couvre Elm 0.18

Main

Enfin, il nous reste à brancher tout ça ensemble dans le module Main.

Modifiez src/Main.elm comme ceci :

module Main exposing (..)

import Messages exposing (Msg(..))
import Models exposing (Model, initialModel)
import Navigation exposing (Location)
import Players.Commands exposing (fetchAll)
import Routing exposing (Route)
import Update exposing (update)
import View exposing (view)


init : Location -> ( Model, Cmd Msg )
init location =
    let
        currentRoute =
            Routing.parseLocation location
    in
        ( initialModel currentRoute, Cmd.map PlayersMsg fetchAll )


subscriptions : Model -> Sub Msg
subscriptions model =
    Sub.none


main : Program Never Model Msg
main =
    Navigation.program OnLocationChange
        { init = init
        , view = view
        , update = update
        , subscriptions = subscriptions
        }

Nouveaux imports

Nous avons ajouté les imports pour Navigation et Routing.

Init

init : Location -> ( Model, Cmd Msg )
init location =
    let
        currentRoute =
            Routing.parseLocation location
    in
        ( initialModel currentRoute, Cmd.map PlayersMsg fetchAll )

Notre fonction init prend désormais une Location en entrée venant de Navigation. Nous analysons cette Location en utilisant la fonction parseLocation que nous avons créée auparavant. Nous stockons ensuite cette Route initiale dans notre modèle.

main

main utilise désormais Navigation.program plutôt que Html.program. Navigation.program enveloppe Html.program et déclenche un message lorsque l'adresse du navigateur change. Dans notre cas, ce message sera OnLocationChange.

results matching ""

    No results matching ""