gpt4 book ai didi

javascript - 如何在 .js.erb 文件中执行模态的 js 渲染?

转载 作者:行者123 更新时间:2023-12-02 16:46:32 24 4
gpt4 key购买 nike

我有一个 main.js.erb ,如下所示:

$(document).on("page:change", function(){
MainJS.init();
$("#add-video-step-1").html("<%= escape_javascript(render 'videos/upload_video') %>");
$('#myModalLabel').modal(show);
Ladda.bind('#video-submit');
console.log("Upload.js.erb has been executed");

});

基本上,我想要发生的是每当按下 id #video-submit 的按钮时,我希望它执行部分 videos/upload_video.

只需执行常规渲染“videos/upload_video”我认为应该足够了,但是当我尝试此操作时,我收到此错误:

NoMethodError at /
undefined method `render' for #<#<Class:0x007f916fcf1310>:0x007f91721a9c20>
(in /app/assets/javascripts/main.js.erb)

在这一行:

$("#myVCModal").html("<%= escape_javascript(render 'videos/upload_video') %>");

想法?

编辑 1

这是根据 uDAY 请求的部分代码 - 即 video/_upload_video.html.erb:

<div class="bootstrap-styles">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Upload your Video</h3>
<p><i>Step 2 of 2 - TEST</i></p>
</div>
<div class="modal-body">
<div class="form">
<%= form_tag @upload_info[:url], :multipart => true do %>
<div>Step 2 of 2</div>
<%= hidden_field_tag :token, @upload_info[:token] %>
<%= file_field_tag :file, title: 'Choose video to upload' %>
<p class="uploader">
<button class="btn btn-success ladda-button" data-color="green" data-style="expand-left"><span class="ladda-label">Upload Video</span><span class="ladda-spinner"></span></button>
</p>
<% end %>

</div>
</div>
<div class="modal-footer">
</div>
</div>

最佳答案

您收到错误,因为 renderviews (ActionView) 的一种方法,并且您在不可用的 Assets 中尝试它。因此,要使其正常工作,我们应该做的是初始化 ActionView ,为此,您的 main.js.erb 应该如下所示:

$(document).on("page:change", function(){
MainJS.init();
<% action_view = ActionView::Base.new(Rails.configuration.paths["app/views"].first) %>
$("#add-video-step-1").html("<%= action_view.escape_javascript(action_view.render 'videos/upload_video') %>");
$('#myModalLabel').modal(show);
Ladda.bind('#video-submit');
console.log("Upload.js.erb has been executed");

});

我刚刚尝试过,它对我有用,尝试一下,看看它是否适合你:)

<小时/>

对于ajax请求和渲染部分内容,您只需将ajax请求发送到 Controller action将以下代码放入相应的 View 文件中(action. js.erb):

$("#add-video-step-1").html("<%= escape_javascript(render 'videos/upload_video') %>");
$('#myModalLabel').modal(show);

关于javascript - 如何在 .js.erb 文件中执行模态的 js 渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27071621/

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