2013-05-01 26 views
2

我一直在試圖通過我的工作javascript代碼到CoffeeScript的,但我不能得到通過這個錯誤:的CoffeeScript - 無與倫比的減少縮進

unmatched OUTDENT on line 55

這是CoffeeScript的代碼

$(document).on("click",".save_button", -> 
    $form = $(this).parent().parent().parent().parent().parent().parent() 
    $form.bind("ajax:complete", -> 
       $actionURI = $form.attr("action"); 
     $.get(window.location.protocol+"//"+window.location.host+$actionURI+".js",(data) -> 
        $form.parent().parent().prev().html(data); //Line 55 
        closeSaveElement() 
     ,"html") 
    ); 
    $form.submit(); 
    return false; 
); 

我已經嘗試了擦除和擦除;無處不在,但我不知道什麼是錯的。我也嘗試更改->=>但彈出同樣的錯誤。

+1

http://www.coffeelint.org/是一個有用的工具,讓您的CofeeScript乾淨 – 2013-05-01 20:34:06

+0

http://js2coffee.org/是我的咖啡/ JS – MrYoshiji 2013-05-01 20:37:09

+0

@JasonSperske coffeelint喜愛似乎有點過時壽 – Ven 2013-05-01 21:12:50

回答

6

有效的JS並不是真正有效的CoffeeScript。你不得不做這樣的事情:

$(document).on "click", ".save_button", -> 
    $form = $(this).parent().parent().parent().parent().parent().parent() 

    $form.bind "ajax:complete", -> 
     $actionURI = $form.attr "action" 
     $.ajax 
      type: "get" 
      url: "#{window.location.protocol}//#{window.location.host}#{$actionURI}.js" 
      dataType: "html" 
      success: -> 
       $form.parent().parent().prev().html(data) 
       closeSaveElement() 

    $form.submit() 

    return false 

此外,做些什麼這行:

$form = $(this).parent().parent().parent().parent().parent().parent() 

.closest()應該是有幫助的。

+0

嘿謝謝,是的,我不喜歡所有的父母()的事情,讓我看看最接近()。所以我看到了,我應該刪除所有的痕跡; – 2013-05-01 20:33:49

+0

@EH_warch:種類。 – Blender 2013-05-01 20:36:16

+2

空格對於咖啡標也很重要。它表示諸如函數的開始和結束,散列塊等等。所以,當你縮進'$ actionURI = $ form.attr(「action」)'時,這可能會導致問題(更不用說分號)。 – nzifnab 2013-05-01 20:38:43