如何正确使用 转义 javascript 进行 <%= link_to %>

How do I properly use escape javascript for <%= link_to %>?

本文关键字:link to 何正确 javascript 转义 进行      更新时间:2023-09-26

我有一个包含以下代码的js.erb文件,但我似乎无法正确转义link_to辅助方法的javascript。 我认为这与编辑周围的引号有关。

$('#microposts').prepend('<div class="micropost"><h3>' +  "<%= j @user.email %>" + '</h3>    <h3>Posted ' + "<%= j time_ago_in_words(@micropost.created_at) %>" + ' ago</h3><p>' +  "<%= j     @micropost.content %>" + '</p><p>' + "<%= j link_to "Edit",      edit_user_micropost_path(@micropost) %>" '</p></div>');
$('#new_micropost')[0].reset();
$('#micropost_count').html('<%= Micropost.count %>');

附带说明一下,我将如何对此进行动画处理?

这可能不完全是你要找的答案,但我会谦虚地建议这不是正确的方法,正确逃避这一点的困难只是该方法过于复杂的症状。

我知道你在这里做的事情实际上可能与课程相当(根据一些 Rails 开发人员的说法(,但我认为这是低效的,更糟糕的是,太复杂了(因此难以维护(。 据推测,已经进行了一些 AJAX 调用并收到了这个动态生成的响应,其中包含用 JavaScript 实现的命令式命令(执行某些操作的命令;在本例中为修改 DOM 的命令(。 为什么不在页面最初加载时加载一个静态的 JavaScript 块,它知道如何获取一小段 DATA 并适当地呈现它?

然后,您要做的是返回JSON而不是命令式脚本块。 你的静态JavaScript方法将通过以下方式修改DOM:

  1. 复制嵌入在该页面上的易于维护的 HTML 的隐藏代码段。
  2. 对副本执行查找/替换,以使用从 AJAX 调用中获得的 JSON 结构中的数据"填充空白"。
  3. 在集合前面加上新的 HTML 代码段。

认为这会更直接,维护更容易。