如何让evancz / url-parser匹配路径的开头并将其余路径作为String返回? 例如:
s "search" </> string |> format Search
如果路径类似&#34; search / text / with / slashes&#34; ,则不匹配
我希望用&#34; text / with / slashes&#34;字符串作为有效负载。
答案 0 :(得分:1)
evancz / url-parser似乎只处理由'/'分隔的段。
我想你必须编写自己的解析器。
(这里,我使用url-parser集成了yourparser
,这是你现有的解析器)
urlParser : Navigation.Parser (Result String String)
urlParser =
let
parser : Navigation.Location -> (Result String String)
parser location =
Maybe.oneOf
[ Result.toMaybe (yourparser location)
, Result.toMaybe (extractSearch location.pathname)
]
|> Result.fromMaybe "parse error"
extractSearch pathname =
if String.startsWith "/search/" pathname
then Ok (String.dropLeft 8 pathname)
else Err "failed to extract search string"
in Navigation.makeParser yourparser