Ich bin sehr neu in Elm und haben nur am Elm Tutorial App sah https://github.com/sporto/elm-tutorial-appElm Routing-Route statt Pfad angeben
Ich habe mich gefragt, wie ich Seite ändern könnte, wenn auf einen Link zu klicken, die Strecke statt der Pfad angeben .
Dies wird die Routing-
type Route
= HomeRoute
| NotFoundRoute
matchers : Parser (Route -> a) a
matchers =
oneOf
[ map HomeRoute top ]
parseLocation : Location -> Route
parseLocation location =
case (parsePath matchers location) of
Just route ->
route
Nothing ->
NotFoundRoute
nun in der Ansicht würde ich gerne HomeRoute holen, wenn sie auf dem Menü-Link
geklicktmenuItems : List MenuItem
menuItems =
[ { text = "Dashboard", iconName = "dashboard", route = HomeRoute }
]
viewDrawerMenuItem : Model -> MenuItem -> Html Msg
viewDrawerMenuItem model menuItem =
Layout.link
[ Layout.onClick (NavigateTo menuItem.route)
, (Color.background <| Color.color Color.BlueGrey Color.S600) when (model.route == menuItem.route)
, Options.css "color" "rgba(255, 255, 255, 0.56)"
, Options.css "font-weight" "500"
]
[ Icon.view menuItem.iconName
[ Color.text <| Color.color Color.BlueGrey Color.S500
, Options.css "margin-right" "32px"
]
, text menuItem.text
]
Ich möchte die Nachricht NavigateTo implementieren, aber bin nicht sicher, Wie.
Ich könnte ein Update erstellen NavigateTo, die eine Route als Zeichenfolge nimmt und dann Navigation erstellen eine neue URL. Wie
NavigateTo path ->
(model, Navigation.newUrl path)
Doch statt einen Pfad als String mit mir eher die Union Typ Route benutzen würde.
Dank viel. Es macht Sinn und funktioniert gut so. – Chris