【发布时间】:2013-06-17 09:14:09
【问题描述】:
我认为有一些代码是这样的
$(".someclass").hover(function(){
$(this).append("#{render "layouts/show_some_file", title: "some_file"}");
});
show_some_file.html.haml 文件由两个嵌套的基本 div 组成
在我的浏览器中,我得到了
$(".someclass").hover(function(){
$(this).append("<div>
<div>some text</div>
</div>
");
});
悬停时,我进入我的 chrome 控制台SyntaxError: Unexpected token ILLEGAL。我删除了控制台中的空格,它起作用了。但是如何清理我的红宝石渲染中的空白?
【问题讨论】:
-
我不确定是否要使用 Ruby 进行更改,但一种选择是使用
<script id="some_id" type="text/template">#{render "layouts/show_some_file", title: "some_file"}</script>。然后要获取其内容,您可以使用$(this).append($("#some_id").html());。它有点像模板。您使用了script标签,但您将其type设置为不会导致其执行的内容。由于script标记在页面上永远不可见,因此您永远不会有视觉问题...不像在div内执行此操作...HTML 然后与页面的其余部分“分离”。 -
我怀疑它是否相关,但我不知道您可以像以前那样在引号内使用引号。
-
@PeterAlfvin 我不确定你可以,但首先评估服务器端代码,因此结果不是嵌套引号。它在源代码中可能看起来很奇怪(除非 IDE 发现它),但它最终应该是正确的
-
@Ian 谢谢,但是否有可能有更直接的解决方案?
-
@Newben 不幸的是我不知道。希望有人来解释我们似乎缺少的快速简便的解决方案。我为您或任何人发布了一个答案作为替代方案;我会继续寻找真正的解决方案
标签: javascript ruby-on-rails append haml