🧊

Backbone.Routerで定義してないルートへのアクセスを捕捉する

意外に困ってる人いない・・・?
解決方法が一応あるっぽかったのでメモ。

ルート増やすだけ

routes: {
  '!/':           'index',
  '!/list':       'list',
  '!/detail/:id': 'detail,

  '*notFound':    'index' // <= コレを増やすのです
}

ポイントは以下。

  • 必ず最後に定義しないと、他のルートをブロックしちゃう
  • 先頭の文字が * であれば別に *hoge でもよい

ちなみに、Marionette.Routerでも使えます。

参考: javascript - Is there a way to catch all non-matched routes with Backbone? - Stack Overflow