主干应用程序未定义错误



我刚刚启动主干和javascript,在控制台中收到以下错误。

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

下面的行声明在哪里?

players = new Dww2.Collections.Playermaps();

如果players变量是在页面的内联<script>元素中声明的,那么在尝试为其分配新的Dww2.Collections.Playermaps时,dww2.js.coffee的内容很可能尚未加载。如果是这种情况,window.Dww2还不存在,并且将是未定义的。

您可以通过在$(document).ready函数中创建Dww2.Collections.Playermaps对象来修复它

最新更新