rails:backbone-on-rails gem-

时间:2012-04-08 01:29:49

标签: ruby-on-rails backbone.js

尝试跟随Ryan Bates Backbone.js教程构建抽奖应用程序,但我已经遇到了第一段代码的问题。在application.js的init函数中,他初始化了Raffler路由的新实例,它应该触发警报“主页”,但是我在Firebug中遇到了以下我不理解的错误

entries.js:5Uncaught ReferenceError: Raffler is not defined
entry.js:15Uncaught ReferenceError: Backbone is not defined
entries.js:23Uncaught ReferenceError: Backbone is not defined
index.js:17Uncaught ReferenceError: Backbone is not defined
application.js:7Uncaught SyntaxError: Invalid regular expression: missing /
raffler.js:9Uncaught TypeError: undefined is not a function

我有什么想法可以解决这个问题吗?

Javascript角/ raffler / application.js中

window.Raffler =
  Models: {}
  Collections: {}
  Views: {}
  Routers: {}
  init: -> 
    new Raffler.Routers.Entries()
    Backbone.history.start()

$(document).ready ->
  Raffler.init()

路由器/ entries.js

class Raffler.Routers.Entries extends Backbone.Router
  routes:
    '': 'index'

  index: ->
    alert "home page"

更新

我运行生成器后//= require_tree .紧跟在需求jquery_ujs之后,我发现(我认为)是导致一些问题的原因。但是,我现在已经把它移到了底部,我仍然得到这个错误

Raffler.Routers.Entries is not a constructor
[Break On This Error]   

new Raffler.Routers.Entries();

的application.js

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

2 个答案:

答案 0 :(得分:7)

我遇到了同样的问题。对我来说,解决方案是删除行

//= require_tree .

来自application.js文件的

,因为这一行在下划线和backbonejs的行之前。

答案 1 :(得分:0)

我发现有其他人遇到同样的问题然后让它上班。我将他的代码(与我的代码完全相同)复制到我的文件中,现在我正在工作。不知道为什么

window.Raffler =
  Models: {}
  Collections: {}
  Views: {}
  Routers: {}
  init: ->
    new Raffler.Routers.Entries()
    Backbone.history.start()

$(document).ready ->
  Raffler.init()