2012-12-06 33 views
0

我按照教程http://www.youtube.com/watch?v=IRelx4-ISbs使用AngularJS $资源从Google财经获取股票指数的JSON数据,例如S & P 500。但是,当我将结果写入控制台时,我看不到数据。我得到这个在谷歌Chrome的控制台:

  • Ë
  • __proto:3
  • $删除
  • $得到
  • $查询
  • $删除
  • $保存
  • 构造
  • __proto

然而,当我进入“网络”在Chrome的控制台,我看到在左边的列的名称路径的get。当我点击“信息”时,我在右侧面板上看到了五个标签,在预览和响应标签下,我看到了正确的数据,我只是不知道如何在Javascript中查看或检索这些数据。我试图把我的代码http://jsfiddle.net/curt00/ycYn7/但谷歌Chrome浏览器的控制台给我“未捕获的错误:没有模块:Twitter的”。(是否有人知道如何解决这个问题?)这是从我的jsfiddle的HTML代码:

<!doctype html> 
<html ng-app="Twitter"> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular-resource.min.js"> 
     </script> 
    </head> 
<body> 
    <div ng-controller="TwitterCtrl"></div> 
</body> 
</html> 

这里是我的jsfiddle Javascript代码:

angular.module('Twitter', ['ngResource']); 

function TwitterCtrl($scope, $resource) { 

var tickerSymbol = "INDEXSP:.INX"; 

var tempurl = 'https://finance.google.com/finance/info?client=ig&q=' + tickerSymbol.replace(":","%3A") + '&callback=?:action'; 

$scope.googleFinance = $resource(tempurl, 
            {action:'&test=', q:'test', callback:'JSON_CALLBACK'}, 
          {get:{method:'JSONP'}}); 

$scope.indexResult = $scope.googleFinance.get(); 

console.log('indexResult: ',$scope.indexResult); 
} 

任何人都可以建议我的代码应该如何改变,以便我可以从响应中获取数据?

回答

2

至少有两件事情是不正确:

  1. 你对你的要求复制的参数。所述tempurl不应包含任何PARAMATERS(即https://finance.google.com/finance/info)。如果您想传递参数,请在动作('get','post','delete'等等)中执行它,或设置默认参数。有关更多信息,请查看angular.js $resource documentation

  2. 谷歌财经的反应实际上是一个数组,因此,你需要添加isArray: true到您的GET行动,以便为它工作

的jsfiddlehttp://jsfiddle.net/8zVxH/1/

附:我对Google Finance API不熟悉,所以我不知道结果是否是您期望的结果。我刚刚“固定”你的jsfiddle不改变逻辑...

+0

谢谢!这有帮助! – Curt