您好,我正在从 Controller 文件中调用部分,但部分中的 javascript 未执行。部分为.html.erb格式。
<% content_for :javascript do %>
<script type="text/javascript">
var eventName = typeof(Turbolinks) !== 'undefined' ? 'page:change' : 'DOMContentLoaded';
document.addEventListener(eventName, function() {
console.log("hello");
<% if flash[:notice] %>
ShopifyApp.flashNotice("<%= escape_javascript flash[:notice].html_safe %>");
<% end %>
<% if flash[:error] %>
ShopifyApp.flashError("<%= escape_javascript flash[:error].html_safe %>");
<% end %>
});
</script>
<% end %>
是部分的代码
respond_to do |format|
if @timer.save
flash[:notice]="updated"
format.html{render :partial => "layouts/flash_messages", :locals => {:flash => flash}}
else
flash[:error]="error"
format.html{render :partial => "layouts/flash_messages", :locals => {:flash => flash}}
end
是 Controller 代码。
最佳答案
如果您想在 rails 中呈现 Javascript,请使用以下方法。
Controller 代码如下:
def create
@user = User.find(params[:id])
respond_to do |format|
format.html {redirect_to @user }
format.js
end
end
将要呈现的代码模板看起来像。
文件名:create.js.erb
$("#someidname").html("<%= @user.email %>");
请注意@user 也可以在这里使用。您也可以渲染其他部分:
$("#someit").html("<%= escape_javascript(render('users/email')) %>");
此外,请确保您发送的是 ajax 请求。
关于javascript - rails 部分渲染 html 不运行 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47683144/