Pessoal, estou tendo um erro ao clicar em editar uma foto.
Error: [$resource:badcfg] http://errors.angularjs.org/1.3.15/$resource/badcfg?p0=get&p1=object&p2=array
at angular.min.js:6
at q.then.p.$resolved (angular-resource.min.js:9)
at angular.min.js:112
at n.$eval (angular.min.js:126)
at n.$digest (angular.min.js:123)
at n.$apply (angular.min.js:126)
at l (angular.min.js:81)
at M (angular.min.js:85)
at XMLHttpRequest.F.onload (angular.min.js:86)
A requisição chega no backend, ele acha a foto. Mas no angular da esse erro a cima. vou passar os códigos aqui para vocês analisarem:
foto - api:
var api = {};
var fotos = [
{_id: 1, titulo: 'Leão', url:'http://www.fundosanimais.com/Minis/leoes.jpg' },
{_id: 2, titulo: 'Leão 2', url:'http://www.fundosanimais.com/Minis/leoes.jpg' }
];
api.lista = function(req, res) {
res.json(fotos);
}
api.buscaPorId = function(req, res){
var foto = fotos.filter(element => element._id == req.params.id);
console.log(foto);
res.json(foto);
}
module.exports = api;
foto - routes:
module.exports = function(app) {
var api = app.api.foto;
app.get('/v1/fotos', api.lista);
app.get('/v1/fotos/:id',api.buscaPorId);
};
no angular:
meus-servicos:
angular.module('meusServicos', ['ngResource'])
.factory('recursoFoto', function($resource) {
return $resource('/v1/fotos/:fotoId', null, {
'update' : {
method: 'PUT'
}
});
})
.factory("cadastroDeFotos", function(recursoFoto, $q) {
var service = {};
service.cadastrar = function(foto) {
return $q(function(resolve, reject) {
if(foto._id) {
recursoFoto.update({fotoId: foto._id}, foto, function() {
resolve({
mensagem: 'Foto ' + foto.titulo + ' atualizada com sucesso',
inclusao: false
});
}, function(erro) {
console.log(erro);
reject({
mensagem: 'Não foi possível atualizar a foto ' + foto.titulo
});
});
} else {
recursoFoto.save(foto, function() {
resolve({
mensagem: 'Foto ' + foto.titulo + ' incluída com sucesso',
inclusao: true
});
}, function(erro) {
console.log(erro);
reject({
mensagem: 'Não foi possível incluir a foto ' + foto.titulo
});
});
}
});
};
return service;
});
foto-controller:
angular.module('alurapic')
.controller('FotoController', function($scope, recursoFoto, $routeParams, cadastroDeFotos) {
$scope.foto = {};
$scope.mensagem = '';
if($routeParams.fotoId) {
recursoFoto.get({fotoId: $routeParams.fotoId}, function(foto) {
$scope.foto = foto;
}, function(erro) {
console.log(erro);
$scope.mensagem = 'Não foi possível obter a foto'
});
}
$scope.submeter = function() {
if ($scope.formulario.$valid) {
cadastroDeFotos.cadastrar($scope.foto)
.then(function(dados) {
$scope.mensagem = dados.mensagem;
if (dados.inclusao) $scope.foto = {};
})
.catch(function(erro) {
$scope.mensagem = erro.mensagem;
});
}
};
});
versão do node: 4.1.2