2014-01-03 4 views
0

Я изучаю Backbone.js, перейдя через Backbone on Rails Railscast. В части 2 эпизода 325 они добавляют $('#new_entry')[0].reset() в файл entries_index.js.coffee (см. Ниже). Это должно очистить текст от формы после его добавления в список. Я использую Rails версии 4.0.0.Backbone on Rails ExecJS :: RuntimeError в индексе Main #

class Raffler.Views.EntriesIndex extends Backbone.View 

    template: JST['entries/index'] 

    events: 
    'submit #new_entry': 'createEntry' 

    initialize: -> 
    @collection.on('reset', @render, this) 
    @collection.on('add', @appendEntry, this) 

    render: -> 
    $(@el).html(@template(entry: @model)) 
    @collection.each(@appendEntry) 
    this 

    appendEntry: (entry) -> 
    view = new Raffler.Views.Entry(model: entry) 
    @$('#entries').append(view.render().el) 

    createEntry: (event) -> 
    event.preventDefault() 
    @collection.create name: $('#new_entry_name').val() 
    $('#new_entry')[0].reset() 

я получаю эти ошибки при перезагрузке страницы на локальном хосте:

ExecJS::RuntimeError in Main#index 
SyntaxError: unexpected CALL_START 
    (in /Users/lionelramos/Documents/raffler/app/assets/javascripts/views/entries/entries_index.js.coffee) 

Мой журнал имеет это:

ActionView::Template::Error (SyntaxError: unexpected JS 
    (in /Users/lionelramos/Documents/raffler/app/assets/javascripts/views/entries/entries_index.js.coffee)): 

Мой шаблон индекса (index.jst.eco) минимальна:

<h1>Raffler</h1> 

<form id="new_entry"> 
    <input type="text" name="name" id="new_entry_name"> 
    <input type="submit" value="Add"> 
</form> 
<ul id="entries"></ul> 
+0

Аналогичный вопрос [здесь] (https://stackoverflow.com/questions/16617928/syntaxerror-unexpected-when-setting-up-backbone-js-with-rails) – ltrainpr

ответ

0

Я стесняюсь сказать, что эта ошибка была связана с углублением на event.preventDefault() , У меня было несколько пробелов и вкладка вместо двух вкладок. Веселые времена!

0

Попробуйте явно добавить p arentheses вокруг ваших вызовов метода и/или фигурных скобок вокруг аргументов объекта, как показано в this issue.

Конкретно здесь:

@collection.create({ name: $('#new_entry_name').val() }) 

По моему испытанию на js2coffee.org:

# this parses 
action key: "value", variable 

# while this doesn't 
action key: "value", some_function() 
+0

К сожалению, это не сработало. – ltrainpr

Смежные вопросы