7
我正在使用祕書和試劑。這是我的代碼:如何在clojurescript中獲取查詢參數?
(def view (atom nil))
(defn layout [view]
[:div @view])
(reagent/render-component [layout view] (.getElementById js/document "message"))
(secretary/set-config! :prefix "")
(secretary/defroute home-path "/" [query-params]
(timbre/info "Path : /, query params : " query-params)
(let [warning (:warning query-params)
success (:success query-params)
login-failed (:login_failed query-params)]
(when warning
(timbre/info "Warning found : " warning)
(reset! view [:h4 [:span.label.label-warning warning]]))
(when success
(timbre/info "Success found : " success)
(reset! view [:h4 [:span.label.label-info success]]))
(when login-failed
(timbre/info "Login failed")
(reset! view [:h4 [:span.label.label-warning "Login Failed."]]))))
(let [h (History.)]
(goog.events/listen h EventType.NAVIGATE #(secretary/dispatch! (.-token %)))
(doto h
(.setEnabled true)))
忽視的:前綴值(我想「」,「#」,也沒有設置:前綴的話)這個代碼只適用於像路線:
http://localhost:8080/login#/?success=SuccessMessage
不過,這並不與像路線工作:
http://localhost:8080/login?success=SuccessMessage
什麼,我其實是想實現的是從friend,這在失敗的情況下重定向我
解析登錄失敗http://localhost:8080/login?&login_failed=Y&username=someUser
並向用戶顯示登錄失敗消息。 我不需要爲這個使用祕書,任何可以解析查詢參數的東西都可以。
難的方法是分析查詢字符串,我可以得到:
(-> js/window .-location .-search)
我認爲,這是已經在一些圖書館做得很好。