Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Quando eu clico no botao editar e depois salvo a alteração, nao esta aparecendo na mensagem o titulo da foto que foi alterado. No video esta sendo apresentando, foi feita alguma alteração ?

Segue os codigos : foto-controller

angular.module('alurapic')
    .controller('FotoController', function($scope, $http, $routeParams) {

        $scope.foto = {};
        $scope.mensagem ='';

        if($routeParams.fotoId) {
            $http.get('/v1/fotos/' + $routeParams.fotoId)
            .success(function(foto) {
                $scope.foto = foto;
            })
            .error(function(erro) {
                console.log(erro);
                $scope.mensagem = 'Não foi possível obter a foto'
            });
        }

        $scope.submeter = function() {

            if ($scope.formulario.$valid) {

                if($routeParams.fotoId) {

                    $http.put('/v1/fotos/' + $scope.foto._id, $scope.foto)
                    .success(function() {
                        $scope.mensagem = 'Foto alterada com sucesso';

                    })
                    .error(function(erro) {
                        console.log(erro);
                        $scope.mensagem = 'Não foi possível alterar';
                    });

                } else {                
                    $http.post('/v1/fotos', $scope.foto)
                    .success(function() {
                        $scope.foto = {};
                        $scope.mensagem = 'Foto cadastrada com sucesso';
                    })
                    .error(function(erro) {
                        console.log(erro);
                        $scope.mensagem = 'Não foi possível cadastrar a foto';
                    })
                }
            }
        };
    });

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>Título</label>
            <input name="titulo" class="form-control" 
                ng-model="foto.titulo" 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">
                No máximo 20 caracteres!
            </span>   
        </div>
        <div class="form-group">
            <label>URL</label>
            <input name="url" class="form-control" 
            ng-model="foto.url" 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 name="descricao" class="form-control" ng-model="foto.descricao">
            </textarea>
        </div>

        <button type="submit" class="btn btn-primary" ng-disabled="formulario.$invalid">
            Salvar
        </button>
         <a href="/" class="btn btn-primary">Voltar</a>
        <hr>
    </div>
    <div class="col-md-6">
         <minha-foto url="{{foto.url}}" titulo="{{foto.titulo}}">
        </minha-foto>
    </div>
</form>

principal.html

 <div class="jumbotron">
                 <h1 class="text-center">Alurapic</h1>
            </div>
            <p class="alert alert-info" ng-show="mensagem.length">{{mensagem}}</p>

            <!-- novidade, a row com o campo de busca -->
            <div class="row">
                <div class="col-md-12">
                <form>
                    <div class="input-group">
                       <span class="input-group-btn">
                            <a href="fotos/new" class="btn btn-primary">Nova foto</a>
                       </span>
                       <input ng-model="filtro" ng-model-options="{ debounce: 500}" 
                        class="form-control" placeholder="filtrar">
                    </div>    
                </form>
                </div> <!-- fim col-md-12 -->
            </div> <!-- fim row -->

            <div class="row">
                <meu-painel class="col-md-2 painel-animado" ng-repeat="foto in fotos | 
                 filter: filtro" titulo="{{foto.titulo}}">
                 <minha-foto url="{{foto.url}}" titulo="{{foto.titulo}}"></minha-foto>
                 <a class="btn btn-primary btn-block" href="/fotos/edit/{{foto._id}}">Editar</a>
                <button ng-click="remover(foto)" class="btn btn-danger btn-block" >Remover</button>
                </meu-painel> <!-- fim do painel -->
           </div>    <!-- fim row --> 

           <!--<img class="img-responsive center-block" src="{{foto.url}}" alt="{{foto.titulo}}"> -->
3 respostas
solução!

Não há nenhuma alteração no vídeo, aliás, aparece que você não seguiu o vídeo, porque lá eu faço a concatenação com o título, algo simples mesmo, que aprendemos quando começamos a programar.

O que você deve ter feito foi cortar e colar a explicação do capítulo, nas esqueceu de cortar e colar a última parte, que faz a concatenação. (inclusive, quando fui verificar, também achei que não tivesse feito a concatenação). Como ela é parecida com a parte anterior, você deve ter achado que já tinha colado.

Nesse caso, sugiro evitar cortar e colar e fazer passo a passo para ajudar a fixar a conteúdo.

Sucesso e bom estudo!

Eu nao entendi o que fiz de errado, voce pode mostrar onde que eu errei, qual concatenação deixei de fazer?

opa não precisa já consegui resolver muito obrigado pela dica Flavio.