2016-09-27 1 views
0

evancz/url-parserをパスの開始と一致させ、残りのパスを文字列として返す方法は?たとえば : evancz/url-parserに残りの文字列を返す方法は?

は、私がペイロードとして文字列を「/スラッシュと/テキスト」で検索を得ることを期待する「/スラッシュで検索/テキスト/」パスのようなものがある場合
s "search" </> string |> format Search 

が一致していません。

答えて

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 
関連する問題