我刚刚启动主干和 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
尚不存在并且未定义。
您可以通过创建 Dww2.Collections.Playermaps
来修复它$(document).ready 函数中的对象
关于javascript - Backbone 应用程序未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17509033/