具有自定义默认路由的骨干路由器

时间:2012-09-03 14:18:43

标签: ruby-on-rails-3.2 backbone-routing

我想在视图上启动一个骨干应用程序,它已经由Rails呈现。

这是我的路由器代码

class App.Routers.Dashboard extends Backbone.Router
 routes:
  '': 'index'
  'locations/:id': 'showLocation'

  index: ->
     alert "Dashboard page"

  initialize: ->
    @route(/\/?/, 'index', @index);  

然后在渲染视图中,我启动应用程序

$ ->
 App.appRouter = new App.Routers.Dashboard()
 Backbone.history.start
  pushState: true
  root: "/dashboard"

但是,如果我打开页面

http://localhost:3000/dashboard

路由器未进入“索引”状态。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

默认路由''只会在URL位于根目录时匹配。

在您的示例中,只会使用http://localhost:3000/的网址调用“索引状态”。

建议的方法是使用“splat”路由'*path': 'index'。因为这条路线有效地说要匹配任何东西,所以你需要确保它是最后定义的路线。