javascript - Backbone 应用程序未定义错误

标签 javascript ruby-on-rails-3 backbone.js

我刚刚启动主干和 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/

相关文章:

javascript - 正则表达式不重复点字符javascript

PHP 和 ajax 没有更新

ruby-on-rails-3 - TypeError(字符串无法强制转换为 Fixnum)?

javascript - 将 Backbone.js 与 _.noConflict() 一起使用

backbone.js - 如何从 Backbone Marionette 中的项目 View 实例访问复合 View

javascript - 使用 XPath foreach 进行 Google map 地理编码器

javascript - 在 React 中的按钮单击上添加和删除 HTML 元素

ruby-on-rails - 如何在 HAML 中使用 if 语句来控制标记类字符串?

ruby-on-rails-3 - Rspec 和 Capybara 对象匹配

javascript - Parse.com,下划线模板, View 的模型和当前用户