2014-01-23 60 views
0

我想用Ruby來幫助我建立CoffeeScript的對象..通過AJAX調用到Rails返回CoffeeScript的查看

所以我希望能夠創造像一個文件:(example.js.coffee.erb) :

class Test 
    @constructor: (@name) -> 


window.new_obj = new Test(<%= some_ruby_code%>) 

和AJAX請求做:

$(document).ready -> 

    $.ajax "/controller/action", 
      type: "GET" 
      error: (jqXHR, textStatus, errorThrown) -> 
        alert "Your search result came up empty. Please try again, or refresh the page." 
      success: (data, textStatus, jqXHR) ->  
        #APPEND SCRIPT DIRECTLY INTO DOCUMENT THEN 
        console.log window.new_obj.name 
        #DO OTHER THINGS WITH DATA FROM example.js.coffee.erb 
+0

而你的問題是? –

+0

我將如何獲得JavaScript以追加到文檔?我嘗試了$(document).append(data)...和其中有一個簡單的alert語句的example.js.coffee.erb,並沒有觸發.. – Davey

+0

順便說一句,那不是你如何編寫CoffeeScript構造函數。你有一個額外的'@'。 – meagar

回答

1

如果你希望你的AJAX請求檢索並執行代碼,請使用dataType: 'script'

將腳本附加到DOM不會執行任何操作。

documentation

的dataType
...
「腳本」:評估響應爲JavaScript,並返回純文本。除非緩存選項設置爲true,否則通過向URL追加查詢字符串參數「_ = [TIMESTAMP]」來禁用緩存。注意:這會將POST轉換爲遠程域請求的GET。
...

+0

靠近..雖然咖啡腳本不編譯。它會工作,如果我只是使用JS。 – Davey

+0

其實我不認爲這是可能的.. – Davey

+0

@Davey有一個名爲[咖啡豆](https://github.com/markbates/coffeeBeans)的寶石,如果我正確地閱讀它,應該能夠渲染當JS爲「JS」格式請求時,將coffeescript轉換爲JS。我不相信你需要做任何額外的工作,除了Meagar寫的。我不能從個人經驗中發言,我只是從[這個答案]中找到了它(http://stackoverflow.com/a/6227492/877472)。這個問題的其他答案也可能有一些幫助。 –

相關問題