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

Problemas com o Angular Expression

Olá! Estou na primeira etapa do curso, onde é explicado a questão do Angular Expression, e estou com o problema de que quando eu carrego a página no navegador, aparece em forma de texto o "{{foto.titulo}} e {{foto.url}}" ao invés do seu valor, que deveria ser o texto do título e a url. Não consegui achar a causa do problema, por isso recorri ao fórum.

Grato desde já!

7 respostas

Cole o código de index.html, main.js e FotosController.js. Sem ver o código é sem mensagem de erro que apareceria no console complica. Aliás, siga a boa prática de postar o código quando houver erro.

No aguardo.

index.html

    1 <!DOCTYPE html>                                                                                     
~   2 <html lang="pt-br" ng-app="alurapic"> <!-- Com o atributo ng-app, quando a pagina for aberta, ele ja carrega o modulo alurapic -->        
_   3     <head>                                                                                          
    4         <meta charset="UTF-8">                                                                      
    5         <meta name="viewport" content="width=device-width">                                         
~   6         <title>Alurapic</title>                                                                     
    7         <link rel="stylesheet" href="css/bootstrap.min.css">                                        
    8         <link rel="stylesheet" href="css/bootstrap-theme.min.css">                                  
~   9         <script src="js/lib/angular.min.js"></script> <!-- Importando o Angular pro projeto -->     
~  10         <script src="js/main.js"></script> <!-- Importando o main.js que foi criado -->             
~_ 11         <script src="js/controllers/fotos-controller.js"></script>i <!-- Importando o fotos-controller.js que foi criado -->
   12     </head>                                                                                         
~  13     <body ng-controller="FotosController"> <!-- Dizendo qual controller sera usado -->              
   14         <div class="container">                                                                     
~  15             <h1 class="text-center">Alurapic</h1>                                                   
+  16             <p>{{foto.texto}}</p>                                                                   
+  17             <img class="img-responsive center-block" width="350" src="{{foto.url}}" alt="{{foto.titulo}}"> <!-- Abrimos uma "lacuna" na no      ssa viewi, e {{foto.url}} é uma "angular expression" -->                                                                                  
   18         </div> <!-- fim container -->                                                               
   19     </body>                                                                                         
~  20 </html>

main.js

1 angular.module('alurapic', []); // Criando um modulo do Angular

fotos-controller.js

    1 angular.module('alurapic').controller('FotosController', function($scope){
    2     // $scope Cria um escopo desse controller                       
    3                    
    4     $scope.foto = {
    5         titulo: 'Leao',                                             
    6         url: 'https://i.ytimg.com/vi/92r4CSt8txw/maxresdefault.jpg',
    7         text: 'Ola'                                                                                                                       
    8     }; // Adicionou a foto dinamicamente no escopo do controller    
    9                    
   10 });

E a mensagem do console do Chrome? A propósito, você criou text: 'Ola' e está usando como foto.texto na view.

solução!

Aliás, você salvou os scripts nas pastas corretas? É comum o aluno salvar o arquivo na pasta errado e o caminho da tag script não apontar para o arquivo no local correto.

Estou utilizando o Firefox como navegador e no console não consta nenhuma mensagem. Da mesma forma, nenhuma mensagem está no terminal, a não ser:

    $ npm start

    > alurapic@1.0.0 start /home/michael/Alura/Curso_Angular1/Angular1_Tutorial_Project/alurapic
    > node server.js

    Banco data.db pronto para uso
    Servidor escutando na porta: 3000

Sim, o foto.texto na view foi pra teste mesmo, por gentileza, desconsidere!

Olá, acho que você se confundiu. Você me passou a mensagem do terminal, eu pedi do console do Chrome. Se você salvou em arquivo indevido, ele indicará.

Então, abra no Chrome e faça o teste. O Console dele é muito superior. Abra, e verifique o console. Pegando o código como você postou e colocando aqui funciona nos dois navegadores. Muito provavelmente você salvou os arquivo em lugares indevidos.

E no firefox, funciona perfeito.