我很新的榆樹和剛纔介紹的榆樹教程應用https://github.com/sporto/elm-tutorial-app榆樹路由指定的路線,而不是路徑
我想知道的鏈接指定的路線,而不是路徑上點擊時,我如何能更改網頁。
這是在視圖中路由
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
現在我想挑HomeRoute菜單鏈接
menuItems : 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
]
上單擊時我想執行的消息的NavigateTo但我不知道怎麼樣。
[ Layout.onClick (NavigateTo menuItem.route)
我可以創造一個更新的NavigateTo這需要作爲字符串的路線,然後讓導航創建一個新的URL。像
NavigateTo path ->
(model, Navigation.newUrl path)
但是,而不是使用一個路徑作爲字符串我寧願使用聯合類型路由。
感謝很多。它確實有意義,並且可以很好地工作。 – Chris