找不到`queue()`函数错误所以排队的动作没有触发JS

时间:2018-04-05 23:19:46

标签: javascript data-visualization

更新 浏览器控制台显示queue未定义。

我是一个对d3和数据感兴趣的初学者。我修改了由Adil Moujahid发现here的样板项目。我在使用localhost渲染图表时遇到问题。 charts.js文件如下。我相信queue()方法没有触发。

queue()
.defer(d3.json, "/nba/utah")
.await(makeGraphs);

function makeGraphs(error, projectsJson, statesJson) {
    var utahProjects = projectsJson;
    var dateFormat = d3.time.format("%Y-%m-%d");
    utahProjects.forEach(function(d) {
        d["Game Date"] = dateFormat.parse(d["Game Date"]);
    });

var ndx = crossfilter(utahProjects);

var gameDateDim = ndx.dimension(function(d) { return d["Game Date"]; });
var teamPtsDim = ndx.dimension(function(d) { return d["Team Pts"]; });
var teamRebDim = ndx.dimension(function(d) { return d["Team Reb"]; });
var teamAstDim = ndx.dimension(function(d) { return d["Team Ast"]; });
var teamFgmDim = ndx.dimension(function(d) { return d["FGM"]; });
var teamFgaDim = ndx.dimension(function(d) { return d["FGA"]; });
var teamMatchupDim = ndx.dimension(function(d) { return d["Matchup"]; });

var all = ndx.groupAll();
var gamesByDate = gameDateDim.group();
var gamesByPts = teamPtsDim.group();

var minDate = gameDateDim.bottom(1)[0]['Game Date'];
var maxDate = gameDateDim.top(1)[0]['Game Date'];
var minPts = teamPtsDim.bottom(1)[0]['Team Pts'];
var maxPts = teamPtsDim.top(1)[0]['Team Pts'];

var timeChart = dc.barChart("#time-chart");
var ptsChart = dc.barChart("#total-pts");

timeChart
.width(600)
.height(160)
.margins({top: 10, right: 50, bottom: 30, left: 50})
.dimension(gameDateDim)
.group(gamesByDate)
.transitionDuration(500)
.x(d3.time.scale().domain([minDate, maxDate]))
.elasticY(true)
.xAxisLabel("Year")
.yAxis().ticks(4);

ptsChart
.width(600)
.height(160)
.margins({top: 10, right: 50, bottom: 30, left: 50})
.dimension(dateDim)
.group(gamesByPts)
.transitionDuration(500)
.x(d3.time.scale().domain([minPts, maxPts]))
.elasticY(true)
.xAxisLabel("Year")
.yAxis().ticks(4);

dc.renderAll();
}

这是我用来构建服务器的app.py框架:

from flask import Flask
from flask import render_template
from pymongo import MongoClient
import json
from bson import json_util
from bson.json_util import dumps

app = Flask(__name__)

MONGODB_HOST = 'mongodb://user:password@aws-server.com'
MONGODB_PORT = 27017
DBS_NAME = 'nba'
COLLECTION_NAME = 'Utah Jazz2017-18'
FIELDS = {'Team Pts': True, 'Team Reb': True, 'Team Ast': True, 'FGM': True, 'FGA': True, 'Matchup': True, 'Game Date': True, '_id': False}

@app.route("/")
def index():
    return render_template("index.html")

@app.route("/nba/utah")
def nba_projects():
connection = MongoClient(MONGODB_HOST, MONGODB_PORT)
collection = connection[DBS_NAME][COLLECTION_NAME]
projects = collection.find(projection=FIELDS)
json_projects = []
for project in projects:
    json_projects.append(project)
json_projects = json.dumps(json_projects, default=json_util.default)
connection.close()
return json_projects

if __name__ == "__main__":
    app.run(host='0.0.0.0',port=5000,debug=True)

请让我知道我哪里误入歧途。

0 个答案:

没有答案