2013-01-13 50 views
0

我不能讓我的頭周圍爲什麼這爲什麼縮進字典在CoffeeScript中不起作用?

$.ajax({ url: "http://ruzzle-map.herokuapp.com/bad", 
     data: { word: $(".words-list li > span.word").eq(current_word).text() }, 
     dataType: 'jsonp', 
     jsonp: 'jsoncall' }) 

而這

$.ajax({ url: "http://ruzzle-map.herokuapp.com/bad", data: { word: $(".words-list li > span.word").eq(current_word).text() }, dataType: 'jsonp', jsonp: 'jsoncall' }) 

編譯好失敗。

回答

1

編譯器似乎搞亂與對象字面壓痕,如果你第一個左括號它編譯後添加一個新行:

$.ajax({ 
    url: "http://ruzzle-map.herokuapp.com/bad", 
    data: { word: $(".words-list li > span.word").eq(current_word).text() }, 
    dataType: 'jsonp', 
    jsonp: 'jsoncall' 
}) 

鑑於這是CoffeeScript中,則可以省略功能調用括號和信任對象文字的縮進和換行符,而不使用大括號和逗號:

$.ajax 
    url: "http://ruzzle-map.herokuapp.com/bad" 
    data: 
    word: $(".words-list li > span.word").eq(current_word).text() 
    dataType: 'jsonp' 
    jsonp: 'jsoncall' 
+0

縮進對象語法真的很漂亮。但我想知道這是否是編譯器中的錯誤... – FiloSottile

+0

@FiloSottile嗯,它_might_是,我不知道。 [Here's](http://coffeescript.org/#try:%7B%20a%3A%201%0A%20%20b%3A%202%20%7D)一個更基本的情況,重現相同的行爲。當新行不縮進[它似乎工作正常](http://coffeescript.org/#try:%7B%20a%3A%201%0Ab%3A%202%20%7D)。一般情況下,縮進或空白相關的錯誤在CoffeeScript中相當棘手,因爲有這麼多的角落案例。在這種情況下,如果[問題](https://github.com/jashkenas/coffee-script/issues)已經打開(如果你能找到它,那麼我不會感到驚訝)。 – epidemian

相關問題