Jquery 如何使用ajax用rails填充UL?
我有一个UL,我希望通过对rails的ajax调用动态填充它 如何使用ajax动态填充由不同控制器提供的具有该信息的不同页面,即一个组的group.links集合 可能是 因此,我寻找一个点击,然后想填充列表,因此我有以下javascript:Jquery 如何使用ajax用rails填充UL?,jquery,ruby-on-rails,ruby,ajax,ruby-on-rails-3,Jquery,Ruby On Rails,Ruby,Ajax,Ruby On Rails 3,我有一个UL,我希望通过对rails的ajax调用动态填充它 如何使用ajax动态填充由不同控制器提供的具有该信息的不同页面,即一个组的group.links集合 可能是 因此,我寻找一个点击,然后想填充列表,因此我有以下javascript: $(function(){ $("a[data-show-group-members]='true'").bind('click', function() { var gid= $(this).data("id"); var gnam
$(function(){
$("a[data-show-group-members]='true'").bind('click', function() {
var gid= $(this).data("id");
var gname= $(this).data("name");
var links=$.get('/groups/' + gid);
$('<tr><td colspan="4">Members:</br><ul id="group-members"><li>1</li><li>2</li><li>3</li></ul>Delete the <b>'+gname+'</b> group and all its members: <b><a rel="nofollow" data-method="delete" data-confirm="Are you sure?" href=\'/groups/'+gid+'\'>Yes</a></b> <b><a href="groups" data-close-group="true">No</b></br></br>').insertAfter($(this).closest('tr'));
$(this).html("");
});
});
但如果这是正确的话就不会了
我有一个现有的route-groups/:id,它通过groups show方法填充@members,我在group show页面erb模板中使用@members来显示该组的成员。
目前,组显示方法是
def show
@group = Group.find(params[:id])
@members = Link.find_all_by_group_id(params[:id], :order => 'position')
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @group }
end
end
所以我可以使用format.xml或者我可以添加format.json,但是我如何称呼它,并最终得到一个具有组名的UL呢
小组成员为:
id: integer, group_name: string,
created_at: datetime, updated_at: datetime, group_description: string
该页面使用:
<ul id="group-members"></ul>
作为接收此信息的地方。显然,我可以删除占位符li的可以利用:
// Get the json from the controller
function GetListItems() {
$.ajax({
type: "POST",
url: "/JsonService/GetItems",
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "json",
success: function (result) {
DisplayListItems(result);
},
"error": function (result) {
var response = result.responseText;
alert('Error loading: ' + response);
}
});
}
// Create list items and append them inside <ul> element
function DisplayListItems(list) {
$.each(list, function(index, element) {
var itemHTML = ["<li>",
"<div>",
"<div>",
element.Title,
"</div>",
"<div>",
element.Description,
"</div>",
"</div>",
"</li>"].join('\n');
$(".list > ul").append(itemHTML);
}
}
// Controller method that serves json data
public JsonResult GetItems()
{
IQueryable<Item> itemList = new DAO().GetList();
return Json(from e in itemList
select new
{
Title = e.Title,
Description = e.Description
});
}
或许
format.json {render @members}
format.json
format.json {render @members}