0

我正在开发一个 Rails 网络应用程序。在我的一个观点中(在 index.html.haml)我有一个 jquery opendialog,我在其中列出了一些东西。我的问题是我不想在加载索引页面但在 openclick 事件时加载它。我将提供一些代码。我对 rails、haml 和 jquery 还是陌生的,所以任何帮助都会受到欢迎,在此先感谢。

问候。

#...stuff

#dialog creation and loading
.dialog{:id => "codes_#{stuff.id}", :title => t_s(:index, resource_class.to_s.downcase)}
  #dialog: haml code with the list loading that is done when the main page is loaded instead on being called at the onclick

#link that opens the dialog
= link_to t_s(:show, resource_class.to_s.downcase), '#', :onclick => "openDialog(#{stuff.id})", :title => t_s(:show, resource_class.to_s.downcase)+ " " +t_s(:index, resource_class.to_s.downcase)

#...stuff

这是一些生成的js:

$(document).ready(function(){
 $(".dialog").dialog({ width: 600, height: 400, autoOpen: false, modal: true, show: "blind", hide: "explode"
 });
}); 
function openDialog(id){ 
$("#codes_"+id).dialog( "open" ); return false; 
}

问候

4

1 回答 1

0

已经自己修好了,我在这里补充说明:1)去掉了haml,只留下了de div,把haml放在partial 2)在控制器中添加了一个动作:def dialog stuff = Stuff.find(params [: stuff_id]) 渲染 :partial => "partial_name",:locals => { :stuff => stuff }, :layout => false end

3)在javascript中: $("#div_id").empty();

$.ajax({ type: 'GET', url: '本例对话框中操作的 url', cache: false, data: { stuff_id: stuff_id }, success: function(html){ $("#div_id"+ stuff_id).append(html); } });

希望这可以帮助别人。

问候

于 2013-07-23T18:09:18.880 回答