【发布时间】:2014-04-11 20:08:36
【问题描述】:
我的问题看起来很简单,但奇怪的是我尝试过的都没有。
我只想用 ajax 加载一些部分。我将一个模板分成几个请求,以便一次加载一个页面。具体来说,我希望将 #footnotes 元素作为 ajax 请求加载。
父模板services/index.html.haml 如下所示:
.services
- @services.each do |service|
.service= service.name
#footnotes
加载#footnotes 元素后,我想启动一个将services/_footnotes.html.haml 加载到其中的ajax 调用。
这里是services/_footnotes.html.haml:
- @footnotes.each do |footnote|
.footnote= footnote
在ServicesController 中,有一个动作有望呈现我的services/_footnotes.html.haml:
def footnotes
stop_id = params[:stop_id]
service_ids = params[:service_ids].split(/,/)
@footnotes = ServicesHelper.generate_footnotes(service_ids, stop_id)
respond_to do |format|
format.html
format.json { render json: @footnotes }
end
end
我从阅读过的各种答案中尝试了一些 javascript 解决方案。我尝试过但失败的 JavaScript 解决方案之一是:
$("#services").ready(function () {
$(".service").each(function(index, element) {
var stop_id = $("#stop_id").data("stopid");
var service_ids = $(element).data("serviceids");
$("#footnotes", element).getJson("/stops/" + stop_id + "/services/" + service_ids + "/footnotes");
});
});
这个特殊的解决方案会产生错误Object [object Object] has no method 'getJson'。
我似乎没能理解这到底是如何工作的。我究竟做错了什么?缺少什么?
【问题讨论】:
标签: javascript jquery ruby-on-rails ajax