0

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

ルータは「インデックス」状態にはなりません。

何か見逃しましたか?

4

1 に答える 1

0

のデフォルト ルートを持つこと''は、URL がルートにある場合にのみ一致します。

あなたの例では、「インデックスの状態」は の URL でのみ呼び出されhttp://localhost:3000/ます。

これを達成するための推奨される方法は、「splat」ルートを使用すること'*path': 'index'です。このルートは事実上、何にでも一致することを示しているため、これが最後に定義されたルートであることを確認する必要があります。

于 2013-02-15T19:43:12.110 に答える