Пытаю связать angularjs и django rest framework. Но не знаю как взять данные, если получаю их через сервис. Но данные приходят, в консоли видны.
Вот мой код для ангуляра:
var app = angular.module('example.app.basic', ['videoServices',]);
app.controller('AppController', ['$scope', 'Results',
function($scope, Results) {
$scope.page = 1;
$scope.results = Results.query();
$scope.videos = $scope.results['results']; //$scope.results.item пробовал
}
]);
var videoServices = angular.module('videoServices', ['ngResource']);
videoServices.factory('Results', ['$resource',
function($resource){
return $resource('/api/videos/:videoId?format=json&page=:page', {}, {
query: {method:'GET', params:{videoId:'', page:'1'}}
});
}]);
А в json у меня вот такое:
{
"count": 21975,
"next": "http://127.0.0.1:8000/api/videos/?format=json&page=2",
"previous": null,
"results": [
{
"id": 22416,
"video_id": "9RAvpnWvynk",
"title": "sdsdsd",
"description": ""
},
{
"id": 22415,
"video_id": "ohgUhgf-dk",
"title": "sdsdsd",
"description": ""
}
]
}
Наверное, отправите JS учить? Будете правы. Но я не хочу знать(пока не хочу).
А вот так работает:
(function() {
var app;
app = angular.module('example.app.basic', ['videoServices']);
app.controller('AppController', [
'$scope', '$http', function($scope, $http) {
$scope.videos = [];
$scope.page = 1;
$scope.next = function() {
return $http.get('/api/videos/?format=json&page=' + $scope.page).then(function (result) {
$scope.page += 1;
return angular.forEach(result.data['results'], function (item) {
return $scope.videos.push(item);
});
});
};
return $scope.next();
}
]);
}).call(this);
Если вдруг вы пришли с поисковика, и не знаете как вообще хоть как-то выводить, то просто внутри шаблона обращайтесь через точку к данным. В моем случае ng-repeat="video in videos.results"