2012-04-08 15 views
3

Ryan Bates Backbone.jsチュートリアルに沿って、抽選アプリケーションを構築しようとしましたが、すでにコードの最初の部分で問題が発生しました。 application.jsのinit関数で、彼は警告 "Home Page"をトリガーするはずの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」(その順番)をどこに含めていますか? –

+0

はい、OPをapplication.jsで更新しました。 require_treeを移動したので、エラーが変更されました。しかし、それはまだ動作していません。 – Leahcim

+0

あなたの 'application.js'はどこにありますか? HTMLの上部または下部? –

答えて

0

を取得しています、私は同じ問題を抱えていた他の誰かを発見し、それが動作するようになりました。彼のコード(私のものとまったく同じ)を私のファイルにコピーして、今は私の仕事をしています。理由を知らない

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

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

私は非常に同じ問題を抱えていました。私にとってソリューションは、このラインは、アンダースコアとbackbonejsのための行の前だったので、application.jsファイルから行

//= require_tree .

を削除することでした。