gpt4 book ai didi

javascript - ruby 代码显示为文本而不是在 js.erb 文件中执行

转载 作者:行者123 更新时间:2023-12-03 11:39:44 25 4
gpt4 key购买 nike

我正在尝试使用 AJAX 调用查找并替换一些 html 代码。

我的 .js.erb 文件中的以下代码成功执行并显示名为“edit unit”的部分 View 以及资源“@units[0]”。

$("#edit_unit").replaceWith( "<%= escape_javascript(sync partial: 'edit_unit', resource: @units[0]) %>" );

但是,当我尝试完成同样的事情,但在 Rails Controller 中定义一个字符串并将其传递到我的 .js.erb 文件时,它无法正确执行,即

在我的 Rails Controller 中:

@string = "sync partial: 'edit_unit', resource: @units[0]"

在我的 .js.erb 文件中:

$("#edit_unit").replaceWith( "<%= escape_javascript(@string) %>" );

当我这样做时,字符串在页面上显示为文本,而不是执行并显示部分 View 。

为什么会发生这种情况?

更新:

Eval 似乎成功执行了该字符串。但是,当我循环多个字符串时,它似乎不起作用。

$("#edit_delivery_unit_div").replaceWith(

<% @array.each do |string| %>
'<%= escape_javascript(eval(string)) %>'
<% end %>

)

这不会返回任何错误,但也不会显示部分 View 。有什么想法吗?

最佳答案

String无法执行,可以使用eval来实现,试试这个

$("#edit_unit").replaceWith( "<%= escape_javascript(eval(@string)) %>" );

但是请谨慎使用,因为您将授予对系统的完全访问权限

关于javascript - ruby 代码显示为文本而不是在 js.erb 文件中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26333716/

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