2

これは今私を夢中にさせています。単純なルーターを機能させることができません...

    jQuery ->
        class MyRouter extends Backbone.Router
            routes:
              ""            :"index"
              "/list"       :"showList"
              "/item/:id"   :"showItem"
            index: =>
              alert "index"
            showList: =>
              alert "get the lists"
            showItem: (id)=>
              alert "the item #{id}"

         @app = window ? {}
         @app = window.app ? {}
         @app.myRouter = MyRouter
         Backbone.history.start()

私はいつもこのエラーを受け取ります: index.js:50Uncaught TypeError: Cannot call method 'start' of undefined

そして私はこれを見ました:backbone.js履歴を開始するときに未定義の「開始」を呼び出すことはできません。

しかし、それは役に立ちませんでした =(...

これは簡単なことだと思いますが、ここで行き詰まっています...助けてください...

4

1 に答える 1

6

Backbone.Router のインスタンスを作成していないため、Backbone.history.start()失敗します。

@app.myRouter = new MyRouter()

投稿したリンクは、問題が何であるかを正確に示しています。

TypeError: undefined のメソッド 'start' を呼び出せません**

うーん、何らかの理由で Backbone.history が定義されていないため、開始メソッドがありません。少なくとも 1 つのルートが指定されたコントローラーが作成されると、Backbone.js は Backbone.history (小文字の「h」) と呼ばれる Backbone.History (大文字の「H」) のインスタンスを作成することがわかります。応答するルートがある場合にのみ履歴管理が必要になるため、これは理にかなっています。

于 2012-04-10T19:20:17.653 に答える