2013-04-23 3 views
0

У меня есть это в моей /assets/javascripts/leads.js.coffeeCoffeeScript ошибка неожиданный терминатор

jQuery -> 
    getRowColour = (status) -> 
    switch status 
    when "rejected" then return '#FFA500' 
    when "confirmed" then return '#C0C0C0' 
    when "didn't connect" then return '#90EE90' 
    else return '#FFFFFF' 

и это в моем /views/leads/index.html.erb

<%= f.select(:status, ["to call","didn't connect","confirmed","rejected"], {:selected => lead.status}, :onchange => "$('#lead_form_#{lead.id}').submit();document.getElementById('lead_row_#{lead.id}').style.backgroundColor=getRowColour(#{lead.status});") %> 
     <% end %> 

Как видно, моя функция обмена в f.select имеет javascript, который вызывает функцию в моем файле coffeescript.

Пожалуйста, скажите мне, где я иду не так?

ответ

7

when и else заявления должны быть отступом на один уровень больше, чем переключатель.

jQuery -> 
    getRowColour = (status) -> 
    switch status 
     when "rejected" then return '#FFA500' 
     when "confirmed" then return '#C0C0C0' 
     when "didn't connect" then return '#90EE90' 
     else return '#FFFFFF' 

Кроме того, switch это выражение в CoffeeScript, и последнее выражение в функции, вам не нужно добавлять return после when.

+0

Ох спасибо. это сработало. однако есть и другое: цвет не изменяется, а отладчик браузера выдает ошибку: getRowColour undefined. не могли бы вы помочь мне здесь? –

+0

@sleeping_dragon, я ответил именно на этот вопрос - http://stackoverflow.com/questions/6089992/cant-find-variable-error-with-rails-3-1-and-coffeescript/6090251#6090251 Позвольте мне знаете, если это поможет! – Dogbert

+0

это работа. Благодарю. Но теперь AJAX не работает. Отладчик браузера не показывает никаких ошибок, но также не меняет цвет строки! –