Javascript 从d3.js中的Rails访问JSON信息
我正试图将d3.js合并到我的项目中,但我在弄清楚如何访问JSON对象时遇到了困难,JSON对象是从我的RubyonRails后端提供的 这是我的控制器代码:Javascript 从d3.js中的Rails访问JSON信息,javascript,ruby-on-rails,json,d3.js,Javascript,Ruby On Rails,Json,D3.js,我正试图将d3.js合并到我的项目中,但我在弄清楚如何访问JSON对象时遇到了困难,JSON对象是从我的RubyonRails后端提供的 这是我的控制器代码: class CoursesController < ApplicationController respond_to :html, :json def course @course = Course.find(params[:id]) respond_with @course do |format| format.
class CoursesController < ApplicationController
respond_to :html, :json
def course
@course = Course.find(params[:id])
respond_with @course do |format|
format.html
format.json {render json: @course}
end
end
我得到以下错误:
TypeError: Cannot read property 'course' of undefined
在控制台中,我还尝试了类似以下内容:
var url = '/courses/1';
var dataset = d3.json(url);
dataset[0].course.course_name;
但是得到同样的错误
我对js比较陌生,所以我可能犯了一个新手错误,但是,不管是什么,我看不出来
提前感谢您的帮助 问题是带有一个参数的d3.json函数()返回请求。然后,您必须发出该请求 “典型”用法是使用第二个参数和回调函数。这是一个异步回调,因此不能将返回值分配给var 以下是我的建议:
var url = '/courses/1';
d3.json( url, function( error, data ) {
console.log( data );
// do all actions required now that the data is retrieved
} );
非常感谢-这让我快发疯了!
var url = '/courses/1';
var dataset = d3.json(url);
dataset[0].course.course_name;
var url = '/courses/1';
d3.json( url, function( error, data ) {
console.log( data );
// do all actions required now that the data is retrieved
} );