2013-07-07 2 views
1

Я только начинаю магистраль и javascript и получаю следующую ошибку в консоли.Backbone application undefined error

players = new Dww2.Collections.Playermaps() 
ReferenceError: Dww2 is not defined 

application.js

//= require jquery 
//= require jquery_ujs 
//= require underscore 
//= require backbone 
//= require dww2 
//= require_tree ../templates 
//= require_tree ./models 
//= require_tree ./collections 
//= require_tree ./views 
//= require_tree ./routers 
//= require_tree . 

playermaps_router.js.coffee 

class Dww2.Routers.Playermaps extends Backbone.Router 

    routes: 
    'playermaps': 'index' 

    initialize: -> 
    @collection = new Dww2.Collections.Playermaps() 
    @collection.reset($('#container').data('playermaps')) 

    index: -> 
    view = new Dww2.Views.PlayermapsIndex(collection: @collection) 
    $('#container').html(view.render().el) 

playermaps.js.coffee

class Dww2.Collections.Playermaps extends Backbone.Collection 

    url: '/playermaps' 
    model: Dww2.Models.Playermap 

dww2.js.coffee

window.Dww2 = 
Models: {} 
Collections: {} 
Views: {} 
Routers: {} 
initialize: -> 
    new Dww2.Routers.Playermaps() 
    Backbone.history.start(pushState: true) 

$(document).ready -> 
Dww2.initialize() 
+0

делают ли удаление '// = require_tree .' линия никакой разницы? Иногда я сталкивался с нечетными проблемами с тем, как 'require_tree' добавляет файлы активов, в частности, с помощью магистрали. –

ответ

0

Где объявляется следующая строка?

players = new Dww2.Collections.Playermaps(); 

Если переменная players объявлено в инлайн <script> элемента на странице, скорее всего, что содержание dww2.js.coffee не было загружено, когда вы пытаетесь присвоить ему новый Dww2.Collections.Playermaps. Если это так, то window.Dww2 еще не существует и будет неопределенным.

Вы можете это исправить, создав Dww2.Collections.Playermaps объект в $ (документ) .ready функции

+0

У меня есть файл, который я только что добавил, который находится в корне моего каталога javascripts. – BC00

+0

Я набираю игроков = новый Dww2.Collections.Playermaps(); в консоль и получить ошибку, я попытался добавить вышеприведенную строку, но у меня все еще такая же проблема – BC00