gpt4 book ai didi

jquery - 用于 JS 和 HTML 渲染的 Rails 布局

转载 作者:行者123 更新时间:2023-12-01 05:05:19 25 4
gpt4 key购买 nike

好吧,这可能有点奇怪,但问题是:

我有大量类似的 Controller / View 交互,我想让它们变得更加干燥。用户单击一个链接,该链接将被转换为使用 JQuery 执行 AJAX 响应。响应期望返回并执行一些 JavaScript。其中一些遵循相同的模式:

$("working_div").html("<%= render partial => 'some_partial' %>")

有没有办法让我可以通过这样做来干燥它......

$("working_div").html("<%= yield %>")

它仍然返回 JavaScript?

最佳答案

是的,如果您在布局中使用布局,则可以。 (它要求您再构建一个文件,但它将是 DRY。)我不确定这是否是您想要的,但它是如何工作的。

您的嵌套布局可以调用 yield (即使您有一个也调用 yield 的普通布局。对于 js,您的渲染堆栈将继续:[模板] > [部分布局] > [部分]

您的 Controller 将调用普通的渲染命令(如果是隐式的,则不调用)。 (我不知道你想在哪里声明要渲染哪个部分,所以我只是选择这里。):

def index
@partial = params[:partial] || 'some_partial'
respond_to do |format|
format.js render :template => 'my_template'
end
end

您的模板不会调用部分 (some_partial),而是调用部分模板,该模板又调用部分:

# my_template
/* Some js ... */
$("#working_div").html("<%= render :layout => "nested_layout", :partial => @partial %>")
/* Some more js ... */

然后,您的嵌套部分可以调用方法yield:

# nested_partial
/* Some js ... */
<%= yield %>
/* Some more js ... */

关于jquery - 用于 JS 和 HTML 渲染的 Rails 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6480103/

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