我有兴趣学习如何使用AJAX模式对话框。通常,如果我想在我的网站上添加模态对话框,我在主JS文件中添加了jquery UI对话框代码,并将其绑定到ID。
我相信使用Rails我可以创建一个Link,它从服务器获取所有对话框代码,然后打开对话框。
这是真的吗?
如果是这样,你可以通过提供一个简单的例子来帮助我理解轨道MVC世界中的所有东西吗?
由于
答案 0 :(得分:36)
天哪,你4个月前问过这个问题,所以你现在可能已经想到了这一点。我也很难找到关于如何做到这一点的好文章。这是我想出来的:
在你想要拉出这个对话框的任何页面中,你想要一个这样的div(注意你还不想显示它):
<div id="person-form" title="Person" style="display:none"></div>
在该视图中,您还需要一个Ajax调用来调出此对话框:
<%= link_to 'Edit Profile', edit_person_path(person), :remote => true %>
显然,您希望此edit_person_path路由到某个操作。该动作应该呈现一个类似于以下内容的js.erb(在jQuery中):
$("#person-form").dialog({
autoOpen: true,
height: 600,
width: 600,
modal: true,
title: 'Edit Person',
buttons: {
"Edit": function() { $("#edit_person_<%= @person.id %>").submit() },
},
open: function() {
$("#person-form").html("<%= escape_javascript(render('form')) %>")
},
});
这会将部分_form.html.erb呈现到对话框中。
注意:您还需要设置jQueryUI样式,以便对话框呈现美观漂亮。