Clojure 秘书 - 在 URL 更改时派遣

Clojure Secretary - Dispatch on URL Change

秘书能否根据提交的浏览器 url 调度路由,就像许多 javascript 路由框架的工作方式一样?我似乎找不到任何连接它的例子。

例如,当您在浏览器的 url 中输入 http://myapp.com/#/my/route 时,我希望它像我以编程方式输入一样进行调度 (secretary/dispatch!"/my/route") 在 repl.

可以,但不能单独使用。最常见的做法是使用 Google 闭包,如 README.md 示例所示:

(let [h (History.)]
  (goog.events/listen h EventType/NAVIGATE #(secretary/dispatch! (.-token %)))
  (doto h (.setEnabled true)))

当您在上面的示例中调用 setEnabled 时,NAVIGATE 事件将针对当前位置自动触发,这将导致调用 dispatch!