Functional programming ELM将查询参数获取为字符串
基于并感谢@glennsl,我有了一些进展 首先,如果有人有一个链接,我可以了解有关的解析,我会非常高兴Functional programming ELM将查询参数获取为字符串,functional-programming,elm,Functional Programming,Elm,基于并感谢@glennsl,我有了一些进展 首先,如果有人有一个链接,我可以了解有关的解析,我会非常高兴 page : Url.Url -> String page url = case (Parser.parse (Parser.query (Query.string "name")) url) of Nothing -> "My query string: " ++ (Maybe.withDefault "empty" url.query) Just v -
page : Url.Url -> String
page url =
case (Parser.parse (Parser.query (Query.string "name")) url) of
Nothing -> "My query string: " ++ (Maybe.withDefault "empty" url.query)
Just v -> case v of
Just v2 -> "Finnaly a name"
Nothing -> "????"
据我所知,表达式Parser.parse(Parser.query(query.string“name”))url
返回一个Maybe(Maybe string)
我认为解析器可以返回一些东西,如果它可以返回一个字符串,对吗
在我看来,如果我的url中有参数name
,那么我的第一个将被执行,然后我就可以得到名称了
但是不管我把什么放在我的url上,它总是放在第一个Nothing
我得到的结果
问题在于,您没有解析URL的路径部分,而这正是URL.Parser
的主要用途。您必须精确匹配路径
下面是一个与您的URL匹配的解析器:
s "src" </> s "Main.elm" <?> (Query.string "name")
s "src" </> s "Main.elm"
s“src”s“Main.elm”(Query.string“name”)
还要注意,解析查询字符串是可选的,这意味着它也将匹配您的URL:
s "src" </> s "Main.elm" <?> (Query.string "name")
s "src" </> s "Main.elm"
s“src”s“Main.elm”
但只要包含一个查询参数解析器,它就必须匹配
如果您所关心的只是查询参数,那么您必须通过编写自己的函数来解析查询字符串,或者使用一个库,例如:
QS.parse
QS.config
"?a=1&b=x"
== Dict.fromList
[ ( "a", One <| Number 1 )
, ( "b", One <| Str "x" )
]
QS.parse
QS.config
“a=1&b=x”
==Dict.fromList
[(“a”,一个