2012-04-19 68 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