好吧,我很困惑。我正在試圖建立一個rails/backbons SPA。我與這個railscast下沿:http://railscasts.com/episodes/323-backbone-on-rails-part-1?autoplay=true「SyntaxError:unexpected}」當設置backbone.js與軌道
我從瀏覽器試圖訪問根頁面時出現此錯誤:
ExecJS::RuntimeError in Main#index
Showing /Users/Eamon/raffle/raffler/app/views/layouts/application.html.erb where line #6 raised:
SyntaxError: unexpected }
(in /Users/Eamon/raffle/raffler/app/assets/javascripts/backbone/models/entry.js.coffee)
Extracted source (around line #6):
3: <head>
4: <title>Raffler</title>
5: <%= stylesheet_link_tag "application", :media => "all" %>
6: <%= javascript_include_tag "application" %>
7: <%= csrf_meta_tags %>
8: </head>
9: <body>
這裏是我的代碼 - 我只得到了幾分鐘到視頻。
raffler.js.coffee
#= require_self
#= require_tree ./templates
#= require_tree ./models
#= require_tree ./views
#= require_tree ./routers
window.Raffler =
Models: {}
Collections: {}
Routers: {}
Views: {}
init: ->
new Raffle.Routers.Entries()
Backbone.history.start()
$(document).ready ->
Raffler.init()
entries_router.js.coffee
class Raffler.Routers.EntriesRouter extends Backbone.Router
initialize: (options) ->
@entries = new Raffler.Collections.EntriesCollection()
@entries.reset options.entries
routes:
"new" : "newEntry"
'' : 'index'
":id/edit" : "edit"
":id" : "show"
newEntry: ->
@view = new Raffler.Views.Entries.NewView(collection: @entries)
$("#entries").html(@view.render().el)
index: ->
alert "home page"
show: (id) ->
entry = @entries.get(id)
@view = new Raffler.Views.Entries.ShowView(model: entry)
$("#entries").html(@view.render().el)
edit: (id) ->
entry = @entries.get(id)
@view = new Raffler.Views.Entries.EditView(model: entry)
$("#entries").html(@view.render().el)
我知道最上面的代碼是在中投這點無關緊要......這一切都是建立由腳手架發電機 - 我想我沒有刪除任何東西。
entry.js.coffee
class Raffler.Models.Entry extends Backbone.Model
paramRoot: 'entry'
defaults:
class Raffler.Collections.EntriesCollection extends Backbone.Collection
model: Raffler.Models.Entry
url: '/entries'
上述文件是我認爲錯誤發生。我似乎無法在任何地方找到語法錯誤。我注意到在與投頁面上的railscast而來的代碼,這entry.js.coffee只是有
class Raffler.Models.Entry extends Backbone.Model
我試圖刪除一切,但該行對entry.js.coffee文件 - 當我去根頁面......它只是說「加載...」,它只是在應用程序初始化之前用作佔位符的代碼的反映。
也許一雙嶄新的眼睛...
UPDATE
我發現有人有類似的問題在這裏:
看到這和一些其他相關的後帖子...我嘗試刪除// = require_tree。來自application.js的行。其他一些職位說,它需要在底部...但我已經是,所以這也不是問題。櫃面它是相關的,這是我的application.js文件:
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require underscore
//= require backbone
//= require backbone_rails_sync
//= require backbone_datalink
//= require backbone/raffler
//= require_tree .
嚴...那是在我的崗位錯字......這是在我的代碼來適當地縮進。我只是編輯帖子來修復它。 – ewizard