我想創建一個SPA,其中每個頁面都有不同的折線圖組。 我已經創建了一個圖形服務。nvd3作爲角度服務
dashboard.factory('graphService', function() {
function drawGraph(chart, element, data) {
nv.addGraph(function() {
chart = nv.models.lineChart()
.x(function(d) { return d.x })
.y(function(d) { return d.display ? d.display.y : d.y });
chart.lines.scatter.useVoronoi(false);
var xScale = d3.scale.linear()
.domain([0, d3.max(data, function(d) { return d[0]; })]);
chart.xAxis
.axisLabel('Time')
.tickFormat(function(d) {
return d3.time.format("%m-%d %H:%M:%S")(new Date(d))
})
.scale(xScale)
.orient("bottom");
chart.yAxis
.axisLabel('Rate')
.domain([0, 20])
.tickFormat(d3.format(',r'));
d3.select(element)
.datum(data)
.transition().duration(500)
.call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
}
return
{
drawGraph: drawGraph
};
});
然而在第二頁上,我看到的第一頁上的圖或有時我沒有看到
function refreshAcs() {
graphService.drawGraph(that.acsChart, '#chartAcs svg', dataService.getAcsData());
}
我怎麼能做到呢?我是否需要添加回調來獲取圖表並每次傳遞它?作爲功能是發電機