2012-04-19 55 views
1

我想知道如何在我的ajax調用中雄辯地返回以下調用?我可以在附加功能裏面打破線條等?如何在.js.haml文件中生成html?

$(".q#{@question_id}.result_to_response") 
.html("#{escape_javascript(@resp)}") 
.append('<div><a href="#" class="continue_button">Continuez to next question</a></div>'); 

回答

-1

Haml不太適合生成JavaScript;它確實只適用於HTML和XML(爲此它非常出色)。

此外,你不應該動態生成你的JS/CoffeeScript文件。你的JS文件應該是靜態的(比如你的Ruby文件)。

此外,您在HTML中使用escape_javascript這一事實讓我懷疑您正嘗試生成內聯JavaScript。如果是這樣的話,不要這樣做。 JS和CoffeeScript只屬於靜態外部文件。

如果您可以提供有關您的用例的更多信息,我會嘗試提出具體的建議。

+0

......哦,如果字符串中沒有其他東西,則不需要'「#{}」'。 – 2012-04-19 20:24:53

+0

你顯然不知道rails js如何更新/插入/顯示工作 – mhenrixon 2012-04-23 18:02:41

+0

@mhenrixon我知道Rails如何與JavaScript協同工作。你有沒有在這裏不同意的具體事情,或者你是否只是手忙腳亂? – 2012-04-23 19:09:57

0

我給你的建議只是使用jQuery templates或smthng類似的。通過這種方式,您可以使用haml輕鬆生成所有模板,然後在html正文中添加.tmpl()返回值。

生成內聯javascript是應用程序設計不佳的標誌。

+0

如果你的意思是「貧窮」而不是「純粹」,那麼我同意。 – 2012-04-19 22:20:06

+0

但我通常建議不要使用JS模板,因爲服務器執行所有渲染通常更易於維護,然後只需將預呈現的HTML傳遞給瀏覽器即可。 – 2012-04-19 22:21:01

+0

對不起,當然我的意思是「可憐」,謝謝你修理我)) – icanhazbroccoli 2012-04-20 04:06:22