1

Backbone のどのインスタンスも機能しません。私のコンソールはそれが未定義であると言っています...

Uncaught TypeError : Cannot call method 'start' of undefined

これは、次の行に関連しています。

Backbone.history.start()

これは app.js の私のコードです:

app =
  facebookAuth()

class manageView extends Backbone.View
    constructor: ->
        super

    initialize: ->

    template: _.template($('#manage').html())

    render: ->
        $('#page').append(@template())


class AppRouter extends Backbone.Router
    routes:
        "": "manage"

    initialize: ->

    manage: ->
        new manageView()


$(document).ready( ->
  console.log('document ready')
  app.AppRouter = new AppRouter()
  Backbone.history.start()
)

そして、これが私のjsファイルを含めた方法です(それらはすべて正しいパスを指しています):

<script type="text/javascript" charset="utf-8" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="../js/underscore-min.js"></script>
    <script type="text/javascript" charset="utf-8" src="../js/backbone-min.js"></script>
    <script type="text/javascript" charset="utf-8" src="../js/bootstrap.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="../js/less-1.3.0.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="../js/facebook-auth.js"></script>
    <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>

誰でも理由を教えてもらえますか? ありがとう!

4

1 に答える 1

2

その時点でルーターが作成されていない可能性があります。次を試してください:

class AppRouter extends Backbone.Router
 routes:
        "": "manage"

    initialize: ->
        Backbone.history.start()
    manage: ->
        new manageView()


$(document).ready( ->
  console.log('document ready')
  app.AppRouter = new AppRouter()
)
于 2012-08-25T19:06:04.387 に答える