Danny
Danny

Reputation: 1003

Backbone is undefined

Any instance of Backbone doesn't work, my console says it's undefined...

As of now it says: Uncaught TypeError: Cannot call method 'start' of undefined

Which correlates to this line:

Backbone.history.start()

This is my code for 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()
)

And this is how I've included my js files (they all point to the correct path):

<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>

Can anyone tell me why? Thanks!

Upvotes: 1

Views: 2482

Answers (1)

Arkady
Arkady

Reputation: 1269

Probably router wasn't created at that moment. Try next:

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

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


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

Upvotes: 2

Related Questions