[英]Ajax call with dropdown list
我試圖遵循這個問題,但是我被困住了。 在我的控制器中,我有:
def index
if params[:sort] == 'stars'
@projects = [Project.first]
else
@projects = Project.all
end
respond_to do |format|
format.html
format.js { render 'populate_projects', :formats => [:js] }
end
end
在路線上:
get '/inspire/:sort' => 'projects#index'
鑒於:
= collection_select :project, :id, Project.all, :id, :name, {}, {:onchange => '$.get("/inspire/stars")'}
%div#normal
= render 'projects_list'
%div#stars{ style: 'display: none' }
我的_projects_list.html.haml具有:
%div
- @projects.each do |project|
%div
%p
#more code...
最后在populate_projects.js.haml中:
:plain
$("#stars").html("#{escape_javascript render(partial: 'projects/projects_list')}");
$("#normal").hide();
$("#stars").show();
可能該程序沒有意義,因為我正在測試ajax調用是否正常工作。 但是,應該發生的是,當我更改下拉列表的狀態時,必須進行ajax調用,從而呈現“ propulate.js.haml”,並且項目列表必須從全部更改為僅第一項,但不是。 在我的終端中,我可以看到正在進行調用,但是從未渲染出“ populate.js.haml”。 有人可以幫忙嗎?
確保您的Ajax調用請求JS格式:
= collection_select :project, :id, Project.all, :id, :name, {}, {:onchange => '$.get("/inspire/stars.js")'}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.