gpt4 book ai didi

ruby-on-rails-3 - 在 js.erb 内渲染部分内容。是否可以获取原始字符串以便去除空格?

转载 作者:行者123 更新时间:2023-12-03 22:49:02 26 4
gpt4 key购买 nike

我想在 js.erb 文件中渲染部分内容,以便我可以在 Javascript 中使用生成的 HTML。以下是一些代码作为示例。

create.js.erb

$(function(){
var html = "<%= render(:partial => `pretty_box`) %>";
$("#container").prepend(html);
});

_pretty_box.html.haml

.pretty_box_container
.title
Something Pretty

当渲染 create.js.erb 时,我得到以下信息:

$(function(){
var html = "<div class="pretty_box_container>
<div class="title">
Something Pretty
</div>
</div>";
$("#container").prepend(html);
});

正如你所料,这破坏了我的 JavaScript。我需要从渲染部分的结果中去除空白。问题是render的返回值是 ActiveSupport::SafeBuffer 对象,它覆盖所有“不安全”方法(参见 UNSAFE_STRING_METHODS ),包括 strip 。调用render(:partial =>漂亮的盒子).strip对整个字符串进行 HTML 编码。

我已经使用方法 html_safe 尝试了各种组合或to_s 。他们不工作,因为他们返回 self ,并使用raw也不起作用,因为它调用 to_s.html.safe .

我知道我可以附加 ><字符到我的 HAML,但我不想对每个部分的每一行都这样做。

最佳答案

问题不是空格,而是引号。

$(function(){
var html = "<div class="pretty_box_container>
^
This is where you go wrong

试试这个:

$(function(){
var html = "<%= escape_javascript(render(:partial => 'pretty_box')) %>";
$("#container").prepend(html);
});

查看this answer在 StackOverflow 上了解有关 escape_javascript 的说明。

关于ruby-on-rails-3 - 在 js.erb 内渲染部分内容。是否可以获取原始字符串以便去除空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7226942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com