Javascript 来自AngularJS中Json操作的数据

Javascript 来自AngularJS中Json操作的数据,javascript,html,angularjs,linegraph,Javascript,Html,Angularjs,Linegraph,我正在尝试使用Angular JS绘制一个线图,并且一直在处理json文件 我看到aapl.json看起来像: { “日期”:“2009-07-23”, “numOfTweet”:13, “旧分数”:1, “新闻核心”:0, “百分比1”:-100, “appleClosePrice”:21.27, “百分比2”:0 }, { “日期”:“2009-07-24”, “numOfTweet”:32, “旧分数”:2, “新闻核心”:0, “百分比1”:-100, “appleClosePrice

我正在尝试使用Angular JS绘制一个线图,并且一直在处理json文件

我看到aapl.json看起来像:

{
“日期”:“2009-07-23”,
“numOfTweet”:13,
“旧分数”:1,
“新闻核心”:0,
“百分比1”:-100,
“appleClosePrice”:21.27,
“百分比2”:0
},
{
“日期”:“2009-07-24”,
“numOfTweet”:32,
“旧分数”:2,
“新闻核心”:0,
“百分比1”:-100,
“appleClosePrice”:21.56,
“百分比2”:68.17113305
},
var数据=[{
“日期”:“2009-07-23”,
“numOfTweet”:13,
“旧分数”:1,
“新闻核心”:0,
“百分比1”:-100,
“appleClosePrice”:21.27,
“百分比2”:0
},
{
“日期”:“2009-07-24”,
“numOfTweet”:32,
“旧分数”:2,
“新闻核心”:0,
“百分比1”:-100,
“appleClosePrice”:21.56,
“百分比2”:68.17113305
}];
变量percentage1=[],percentage2=[],输出=[percentage1,percentage2];
对于(变量i=0;i警报(JSON.stringify(输出))您需要一个函数来迭代所有JSON对象,并将每个百分比推送到存储在$scope.data中的数组中。
我定义了
$scope.data=[],[]

以下功能应起作用:

  $scope.createGraphArray = function() {  
    for (var i = 0; i < $scope.stocks.length; i++) {
      $scope.data[0].push($scope.stocks[i].percentage1)
      $scope.data[1].push($scope.stocks[i].percentage2)
    }
  }
$scope.createGraphArray=function(){
对于(变量i=0;i<$scope.stocks.length;i++){
$scope.data[0]。推送($scope.stocks[i].percentage1)
$scope.data[1].push($scope.stocks[i].percentage2)
}
}
下面是一个Plunker,它在从JSON生成数组后,以$scope.data显示数组:


注释的行最初是有效的,但修改后的代码在浏览器中没有显示任何内容。有什么问题吗

app.controller('LineCtrl',['$scope','$http',函数($scope,$http){
$http.get('stock/aapl.json').success(函数(数据){
$scope.selec='aapl';//默认为年龄
$scope.series=[‘推特情绪’、‘股市’];
$scope.stocks=数据;
//$scope.labels=[‘一月’、‘二月’、‘三月’、‘四月’、‘五月’、‘六月’、‘七月’];
$scope.labels=[];
$scope.createLabels=函数(){
对于(变量i=0;i<$scope.stocks.length;i++){
$scope.labels.push($scope.stocks[i].date);
}
};  
//$scope.data=[
//     [65, 59, 80, 81, 56, 55, 40],
//     [28, 48, 40, 18, 86, 27, 90]
//   ];
$scope.data=[],[];
$scope.createGraphArray=function(){
对于(变量i=0;i<$scope.stocks.length;i++){
$scope.data[0].push($scope.stocks[i].percentage1);
$scope.data[1].push($scope.stocks[i].percentage2);
}
};
});

}]);循环数据并根据需要构造数据,在本例中为行graph@tpie我还没有给出画线图的代码。这取决于开发者。我的回答是“我的问题是如何使用json中的‘percentage1’和‘percentage2’作为绘制线图的数据”。请先阅读问题,然后再往下看,不要说我不相信它会起作用,我应该说,我认为答案不是很清楚。@t如果你看到我在问题中的评论,我希望它会很清楚。我已经编辑了答案,并添加了开发人员需要对
输出执行的操作
,感谢您回答这个问题。我在controller.js中添加了代码,但似乎不起作用。我的代码在第三个答案中。上面的代码包含了success中嵌套的所有函数,但是您仍然需要调用这些函数。因此,在底部可以放置$scope.createGraphHarray();和$scope.createLabels();在我的plunker中,我在单击按钮时调用该函数,但当http调用成功时,您希望调用它们。我可以理解您需要调用该函数的观点。如何在画布中调用函数来绘制线图?嗯……这是一个完全不同的问题。画布基本上只是一个容器。实际上,您必须使用JavaScript绘制所有图形。Canvas可能会根据您想要做的事情而有所涉及,但它上面有很多内容。你们当然不需要在画布上画画。您可以从这里开始:。你也可以用谷歌画布教程。我是AngularJS的新手,只是自己尝试一下。我的问题是,我可以使用ng控制器访问控制器,使用ng模型访问排序,您还可以使用ng click访问/调用函数。我如何调用函数而不单击?