如何在angularjs中的控制器中输出json数据

如何在angularjs中的控制器中输出json数据,angularjs,Angularjs,我正在学习angularjs,我想在控制台上输出一些json数据 我正在做这样的事情 $scope.events = events.query(); [ {"id":18,"file":{"url":"/uploads/playlist/file/18/01_-_MashAllah.mp3"},"event_id":23,"created_at":"2015-11-11T10:33:52.000Z","updated_at":"2015-11-11T10:33:52.000Z","name

我正在学习angularjs,我想在控制台上输出一些json数据

我正在做这样的事情

$scope.events = events.query();
[
  {"id":18,"file":{"url":"/uploads/playlist/file/18/01_-_MashAllah.mp3"},"event_id":23,"created_at":"2015-11-11T10:33:52.000Z","updated_at":"2015-11-11T10:33:52.000Z","name":"01 - MashAllah.mp3"}, 
  {"id":19,"file":{"url":"/uploads/playlist/file/19/02_-_Laapata.mp3"},"event_id":19,"created_at":"2015-11-11T10:50:01.000Z","updated_at":"2015-11-11T10:50:01.000Z","name":"02 - Laapata.mp3"}
] 
<div ng-repeat="playlist in playlists">
  {{playlist}}
</div>
但当我在控制台上打印时

console.log($scope.events);
它给我的输出像

Array []
我怎样才能像这样打印数据

$scope.events = events.query();
[
  {"id":18,"file":{"url":"/uploads/playlist/file/18/01_-_MashAllah.mp3"},"event_id":23,"created_at":"2015-11-11T10:33:52.000Z","updated_at":"2015-11-11T10:33:52.000Z","name":"01 - MashAllah.mp3"}, 
  {"id":19,"file":{"url":"/uploads/playlist/file/19/02_-_Laapata.mp3"},"event_id":19,"created_at":"2015-11-11T10:50:01.000Z","updated_at":"2015-11-11T10:50:01.000Z","name":"02 - Laapata.mp3"}
] 
<div ng-repeat="playlist in playlists">
  {{playlist}}
</div>
下面是我的全部代码

.controller('ShowEventsCtrl', ['$scope','events', function($scope,events) {

  $scope.events = events.query();
  console.log($scope.events);

 }]);
服务

angular.module('myApp')
.factory('events', ['$resource',function($resource) {
    return $resource('/events', {},{
        query: { method: 'GET', isArray: true },
        create: { method: 'POST' }
    })
}])
当我像这样用html打印数据时

$scope.events = events.query();
[
  {"id":18,"file":{"url":"/uploads/playlist/file/18/01_-_MashAllah.mp3"},"event_id":23,"created_at":"2015-11-11T10:33:52.000Z","updated_at":"2015-11-11T10:33:52.000Z","name":"01 - MashAllah.mp3"}, 
  {"id":19,"file":{"url":"/uploads/playlist/file/19/02_-_Laapata.mp3"},"event_id":19,"created_at":"2015-11-11T10:50:01.000Z","updated_at":"2015-11-11T10:50:01.000Z","name":"02 - Laapata.mp3"}
] 
<div ng-repeat="playlist in playlists">
  {{playlist}}
</div>

{{playlist}}

我得到了正确的输出,所以我不知道如何在控制台中输出它。

因为您的
events.query()
方法是异步的,所以您需要在操作解决后记录内容。我能想到的最简单的方法是

$scope.events = events.query(function(events) {
    console.log(events);
});

可以使用以下参数调用类对象或实例对象上的操作方法:

  • HTTP获取“类”操作:
    Resource.action([parameters]、[success]、[error])

使用(value,responseHeaders)参数调用成功回调


我猜您的困惑来自
$resource

重要的是要认识到调用$resource对象方法会立即返回一个空引用(对象或数组取决于
isArray
)。从服务器返回数据后,现有引用将填充实际数据


您可以在模板中看到正确的数据,因为一旦从服务器返回数据,就会触发作用域摘要并更新模板。

您确定
events.query()
正在返回一些数据吗?@RahulDesai当我以html打印这些数据时,它会给出正确的输出。请显示所有代码上下文。听起来您有一个获取数据的异步操作,并试图在接收数据之前记录数据
$resource
是异步的,您需要使用回调来访问数据