Rails 清除上一个模板后 js 渲染部分
Rails js render partial after clearing previous template
我有一个 rails 应用程序,其主页 link 编辑到 homeController。
在 link 单击(放置操作)时使用 javascript,我想重置 ("clean") 我的整个模板,然后在我的主页中呈现一个全新的部分。
到目前为止我得到了这个:
控制器:
class HomeController < ApplicationController
def show
//classic home action
end
def physical
respond_to do |format|
format.js
end
end
end
Link :
<%= link_to 'Retail Store', home_physical_path, remote: true %>
Js 文件名为“_physical.js.erb”:
$('#empty-body').html("");
$('#empty-body').html("<%= escape_javascript render(:partial => 'physical') %>");
名为 "physical.html.erb" 的视图:
<div>html layout</div>
使用之前的代码,我没有错误,但我的 js 似乎从未被调用,因为页面根本没有更新。
我尝试添加:
format.js { render partial: 'physical' }
在我控制器中的物理方法上,但是当我调用我的方法时,我的控制台 return this & kill:
Segmentation fault
经过几次变通后,我可以在单击后 "reset" 我的模板(页面完全为空),但无法在其中呈现我的新部分。
问题似乎出在试图在此处渲染部分内容的 js :
$('#empty-body').html("<%= escape_javascript render(:partial => 'physical') %>");
这似乎导致了分段错误...
有什么建议吗?
谢谢。
您只需要重命名您的文件:
_physical.js.erb
=> physical.js.erb
(没有 _
的默认 rails 视图工作流程)
physical.html.erb
=> _physical.html.erb
(部分 _
)
我有一个 rails 应用程序,其主页 link 编辑到 homeController。 在 link 单击(放置操作)时使用 javascript,我想重置 ("clean") 我的整个模板,然后在我的主页中呈现一个全新的部分。
到目前为止我得到了这个:
控制器:
class HomeController < ApplicationController
def show
//classic home action
end
def physical
respond_to do |format|
format.js
end
end
end
Link :
<%= link_to 'Retail Store', home_physical_path, remote: true %>
Js 文件名为“_physical.js.erb”:
$('#empty-body').html("");
$('#empty-body').html("<%= escape_javascript render(:partial => 'physical') %>");
名为 "physical.html.erb" 的视图:
<div>html layout</div>
使用之前的代码,我没有错误,但我的 js 似乎从未被调用,因为页面根本没有更新。 我尝试添加:
format.js { render partial: 'physical' }
在我控制器中的物理方法上,但是当我调用我的方法时,我的控制台 return this & kill:
Segmentation fault
经过几次变通后,我可以在单击后 "reset" 我的模板(页面完全为空),但无法在其中呈现我的新部分。 问题似乎出在试图在此处渲染部分内容的 js :
$('#empty-body').html("<%= escape_javascript render(:partial => 'physical') %>");
这似乎导致了分段错误...
有什么建议吗?
谢谢。
您只需要重命名您的文件:
_physical.js.erb
=>physical.js.erb
(没有_
的默认 rails 视图工作流程)physical.html.erb
=>_physical.html.erb
(部分_
)