【发布时间】:2014-06-03 19:43:20
【问题描述】:
我正在使用 Rails 4 应用程序并使用 best_in_place AJAX 更新用户的地址字段。
AJAX 调用成功运行,并且在我的控制器中的更新操作中,我有一个 respond_to 块,我想吐出用户 ID、新的更新地址和一个布尔值,用于判断地址是否有效。
respond_to do |format|
format.json { render :json => { :id => @user.id, :address => @user.address, :address_valid => @user.address_valid } }
end
在我的 Javascript 中,我正在尝试解析该 JSON。我已经尝试过 ['id'] 和点表示法。这是我在成功更新后侦听 JSON 的 JS 函数:
$('.best_in_place').bind("ajax:success", function (response, data) {
console.log(response)
console.log(data)
console.log(typeof data)
});
});
控制台可以预见地记录响应以及来自控制器的 JSON:
jQuery.Event {type: "ajax:success", timeStamp: 1401820902436, jQuery1110046177322673611343: true, isTrigger: 3, namespace: ""…}
{"id":704,"address":"Austin, TX 78751, USA","address_valid":false}
string
我正在为 data.id 获取“未定义”。我也试过调用## Heading ##
【问题讨论】:
-
所以我已经输入了我的问题,但我想我会发布,因为我找到了答案并认为它可能对某人有帮助:我需要在我的 JS 中使用 JSON.parse() 并设置JSON 对象到一个变量。从那里,我能够访问 JSON 对象。 var user = JSON.parse(data) 从那里,我可以在我的 JS 中调用 user.id、user.address 等。
-
你可以回答你自己的问题:)
标签: javascript ruby-on-rails json