ruby-on-rails-3 – 渲染部分Rails3.x coffeescript
发布时间:2020-12-17 03:04:18 所属栏目:百科 来源:网络整理
导读:我有以下要求.我有一个’学校’下拉,作为我添加新学校的最后选项,所以如果用户选择该选项,我想通过ajax将new_school表单加载为部分. 我上线了 gem 'rails','3.2.9'gem 'coffee-rails','~ 3.2.1'Jquery via gem 'jquery-rails' 早期使用rails 3和原型我曾经这
我有以下要求.我有一个’学校’下拉,作为我添加新学校的最后选项,所以如果用户选择该选项,我想通过ajax将new_school表单加载为部分.
我上线了 gem 'rails','3.2.9' gem 'coffee-rails','~> 3.2.1' Jquery via gem 'jquery-rails' 早期使用rails< 3和原型我曾经这样做过 Ajax.Updater (aka Rails link_to_remote :update => 'some_div') 和导轨> 3 JQuery我熟悉?? .js.erb,有类似的东西 $("#school_form").html("<%= escape_javascript(render(:partial => "form"))%>"); 但我是coffeescript的新手,我不知道如何使用coffeescript,有人可以帮助我:),(因为我相信你不应该为此做一个服务器请求) 到目前为止,我已经完成了以下操作来捕获select_tag更改事件 $-> $('#school_name_select').change -> unless $(this).val() $('school_name').html([I want to have the _new_school_form partial here]) 解决方法
使用隐藏的div.
通常,您不希望尝试混合使用JS和HTML.由于跨站点脚本攻击的可能性,转义可能是复杂的,容易出错的,并且是危险的. 只需将表单部分渲染为默认情况下不显示的div.在再培训局: <div id="school_name_form" style="display: none;"> <%= render 'form' %> </div> 在你的CoffeeScript中: $-> $('#school_name_select').change -> if $(this).val() $('#school_name_form').slideUp() else $('#school_name_form').slideDown() 我建议使用像滑动或褪色这样小而有品味的过渡.它为您的应用程序提供了更加完美的感觉 不需要AJAX.这种模式很常见,我的应用程序范围定义如下. .not-displayed { display: none; } 然后使用HAML(如果你进入那个),HTML模板变得简单: #school_name_form.not-displayed = render 'form' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |