如何在angularjs中的控制器中输出json数据
我正在学习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
$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])
我猜您的困惑来自
$resource
重要的是要认识到调用$resource对象方法会立即返回一个空引用(对象或数组取决于isArray
)。从服务器返回数据后,现有引用将填充实际数据
您可以在模板中看到正确的数据,因为一旦从服务器返回数据,就会触发作用域摘要并更新模板。您确定
events.query()
正在返回一些数据吗?@RahulDesai当我以html打印这些数据时,它会给出正确的输出。请显示所有代码上下文。听起来您有一个获取数据的异步操作,并试图在接收数据之前记录数据$resource
是异步的,您需要使用回调来访问数据