Após submeter o limpar o formulário e limpar o objeto foto atribuindo um objeto vazio, os campos ficam limpos, porem apenas os controlados pelo Angular. No caso da diretiva "minha-foto" o elemento <img>
que fica internalizado não tem seu valor do atributo src removido (Já estou utilizando o ng-src).
Quando digitamos qualquer valor na caixa de texto sensibiliza o atributo, mas retornar no sucesso do submissão do formulário não ocorre. Como essa situação poderia ser ajustada? Segue abaixo os trechos de codigo:
Arquivo minha-foto.html
<img class="img-responsive center-block" ng-src="{{url}}" alt="{{titulo}}">
Arquivo foto-controller.js
angular.module('alurapic').controller('FotoController', function($scope, $http){
$scope.foto = {};
$scope.mensagem = '';
$scope.submeter = function(){
if($scope.formulario.$valid){
$http.post('v1/fotos', $scope.foto)
.success(function(){
$scope.mensagem = 'Cadastro realizado com sucesso!';
$scope.foto = {};
$scope.formulario.$setPristine();
})
.error(function(error){
console.log(error);
$scope.mensagem = 'FC001 - Falha ao cadastrar foto.';
});
}
};
});
Arquivo foto.html
<div class="page-header text-center">
<h1>{{foto.titulo}}</h1>
</div>
<p ng-show="mensagem.length" class="alert alert-info">{{mensagem}}</p>
<form novalidate name="formulario" class="row" ng-submit="submeter()">
<div class="col-md-6">
<div class="form-group">
<label>Titulo</label>
<input type="text" ng-model="foto.titulo" name="titulo" class="form-control" required ng-maxlength="20">
<span ng-show="formulario.$submitted && formulario.titulo.$error.required" class="form-control alert-danger">
Título obrigatório
</span>
<span ng-show="formulario.$submitted && formulario.titulo.$error.maxlength" class="form-control alert-danger">
Título com no maximo 20 caracteres
</span>
</div>
<div class="form-group">
<label>URL</label>
<input type="text" ng-model="foto.url" name="url" class="form-control" required>
<span ng-show="formulario.$submitted && formulario.url.$error.required" class="form-control alert-danger">
URL obrigatória
</span>
</div>
<div class="form-group">
<label>Descrição</label>
<textarea type="text" ng-model="foto.descricao" name="descricao" class="form-control">
</textarea>
</div>
<button type="submit" class="btn btn-primary" ng-disabled="!formulario.$valid">
Salvar
</button>
<a href="/" class="btn btn-primary">
Voltar
</a>
</div>
<div class="col-md-6">
<minha-foto url={{foto.url}} titulo={{foto.titulo}}></minha-foto>
</div>
</form>