1
我有一个ajax调用来从Flickr API中获取返回JSON数据的信息。我想在我的视图中显示来自JSON数据的值。我通过用jQuery编辑一些innerHTML来做到这一点。我遇到的问题是数据未定义,所以它看起来像一个范围问题。从Rails中的AJAX调用渲染JSON
photo.js
jQuery(function() {
$('#<%=p[:id]%>').click(function (e) {
//ajax call to fetch photo info
var fetch_id = '<%=p[:id]%>';
var fetch_secret = '<%=p[:secret]%>';
$.ajax({
type: 'GET',
url: '/photos/fetch_info',
dataType: 'json',
data: { 'id' : fetch_id, 'secret' : fetch_secret },
success: function(data){
console.log(data) //returns Object
console.log(data.title) //returns appropriate title
//edit innerHTML of basic_modal
$('.basic_modal').html(
"<div id='modal_image'><%= escape_javascript(image_tag p[:url]) %></div><div id='photo_title'><%=data.title %></div>"
);
//load modal
$('.basic_modal').modal({
overlayClose:true
});
} //end success: function(result)
});
当我打印data.title安慰,我得到了适当的标题。但是,当我尝试编辑HTML并呈现<%=data.title %>
时,出现未定义的变量/方法错误。
任何提示如何我可以在视图中显示我的模态数据?
这里是我的控制器:
def fetch_info
@info = flickr.photos.getInfo(:photo_id => params[:id], :secret=> params[:secret])
respond_to do |format|
format.json { render :json => @info }
end
end
我解决了这个我的问题上面。我打印它到控制台,看到它返回NULL,所以我想它已经被解析。为了便于阅读并删除混淆,我会将其删除。 – Huy
'<%=“+ data.title +”%>'在我的视图中显示字符串“+ data.title +”,而不是实际的标题。 – Huy
你想展示什么? – StaticVariable