Após aplicarmos a promisse, onde encaixo o setPristine? Em meus-servicos ou no foto-controller (acredito que nesse, pois esse é o que possui o $scope)? Tentei diversas alternativas e não funcionou.
foto-controller
$scope.submeter = function() {
if ($scope.formulario.$valid) {
cadastroDeFotos.cadastrar($scope.foto)
.then(function(dados){
$scope.formulario.$setPristine();
$scope.mensagem = dados.mensagem;
if (dados.inclusao) {
$scope.foto = {};
}
})
.catch(function(erro){
$scope.mensagem = erro.mensagem;
});
}
};
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;
});