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
これを修正する方法はありますか?
javascripts/raffler/application.js
window.Raffler =
Models: {}
Collections: {}
Views: {}
Routers: {}
init: ->
new Raffler.Routers.Entries()
Backbone.history.start()
$(document).ready ->
Raffler.init()
routers/entries.js
class Raffler.Routers.Entries extends Backbone.Router
routes:
'': 'index'
index: ->
alert "home page"
アップデート
ジェネレーターを実行した//= require_tree .
後、require jquery_ujs の直後に、これが問題の原因であることがわかりました (私はそう思います)。ただし、今は一番下に移動しましたが、まだこのエラーが発生しています
Raffler.Routers.Entries is not a constructor
[Break On This Error]
new Raffler.Routers.Entries();
アプリケーション.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 .