2012-04-08 51 views
3

試圖按照Ryan Bates Backbone.js教程來構建一個抽獎應用程序,但我已經遇到了第一個代碼問題。在application.js中的初始化函數,他初始化它應該觸發警報「主頁」 Raffler路線的新實例,但我發現在Firebug下面的錯誤,我不明白rails:backbone-on-rails gem-

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 . 
+0

您是否在任何地方包含'underscore.js'和'backbone.js'(按此順序)? – 2012-04-08 02:05:04

+0

是的,我已經用application.js更新了OP。現在我改變了require_tree的錯誤。到底部,但它仍然無法正常工作。 – Leahcim 2012-04-08 02:24:25

+0

你在哪裏包含你的'application.js'? HTML的頂部或底部? – 2012-04-08 03:05:15

回答

0

我發現別人誰有同樣的問題,然後得到它的工作。我將他的代碼(與我的代碼完全一樣)複製到我的文件中,現在我的工作。不知道爲什麼

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

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

我有同樣的問題。對我來說,解決方法是刪除行

//= require_tree .

application.js文件

,因爲這條線是爲下劃線和backbonejs行之前。