小ネタ
Backbone.jsのディスパッチにRouterを使うことは良くある。
ページが単純に読み込まれるなら、ページ読み込み時にBackbone.history.start({pushState: true})
すれば良いのだが、Turbolinksだとリンク辿っても既にstart済みのまま。
かといってBackboneのRouterはpopstateイベントに反応するので、Turblinksでページ遷移してもURL変わるだけでRouterが反応しない。
なので、イベントを足しておく。
# hack for Turbolinks
$(document).on "page:load", ->
Backbone.history.loadUrl()
Turbolinksの遷移が完了した際には、とりあえずloadUrl()
読んでURLを確認する。もしかしたらcheckUrl()
の方が良いかもしれない。
pushStateが使えないブラウザとかは知らんw