gpt4 book ai didi

javascript - 如何使用 haml 将内插的 ruby​​ 对象正确格式化为 Rails 中的 jquery 选择器?

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

<% if @discussion_category %>
$("#<%= dom_id(@discussion_category) %>_notice").html('');
$("#<%= dom_id(@discussion_category) %>").html("<%=escape_javascript(render(partial: 'display_change', locals: {discussion_category: @discussion_category}))%>");
$('#discussion_category_links').show();
<% end %>

我做了以下事情,但我做错了:

-if @discussion_category
javascript:
$(escape_javascript(#{dom_id(@discussion_category)} + '_notice').html('');
$(escape_javascript(#{dom_id(@discussion_category)}).html(#{escape_javascript(render(partial: 'display_change', locals: {discussion_category: @discussion_category}))});
$('#discussion_category_links').show();

我在这里做错了什么?

最佳答案

escape_javascript 函数位于 Rails 端。您不希望它出现在输出中,因此它将位于 #{} 内。

你扔掉了大部分引言。仍然需要那些。

希望没有拼写错误,但直接翻译应该看起来更像这样:

-if @discussion_category
javascript:
$("#{escape_javascript(dom_id(@discussion_category))}_notice").html('');
$("#{escape_javascript(dom_id(@discussion_category))}")
.html("#{escape_javascript(render(partial: 'display_change', locals: {discussion_category: @discussion_category}))}");
$('#discussion_category_links').show();

当构建像这样困惑的 RJS 内容时,使用 j 别名作为 escape_javascript 会更清晰,这也有助于缩小语法问题的范围:

javascript:
$("#{j dom_id(@discussion_category)}_notice").html('');
$("#{j dom_id(@discussion_category)}")
.html("#{j render(partial: 'display_change', locals: {discussion_category: @discussion_category})}");

最后,可能没有理由转义 dom_id 的输出,这意味着您可以:

javascript:
$("#{dom_id @discussion_category}_notice").html('');
$("#{dom_id @discussion_category}")
.html("#{j render(partial: 'display_change', locals: {discussion_category: @discussion_category})}");

...开始看起来更具可读性。

关于javascript - 如何使用 haml 将内插的 ruby​​ 对象正确格式化为 Rails 中的 jquery 选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28972935/

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