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

ng-view não traz as views parciais

<!DOCTYPE html>
<html lang="pt-br" ng-app="alurapic">
    <head>
        <base href="/">
        <meta charset="UTF-8"> 
        <meta name="viewport" content="width=device-width">
        <title>Alurapic</title>
        <link rel="stylesheet" href="css/bootstrap.min.css">
        <link rel="stylesheet" href="css/bootstrap-theme.min.css">
        <link rel="stylesheet" href="css/efeitos.css">

        <script src="js/lib/angular.min.js"></script>
        <script src="js/lib/angular-animate.min.js"></script>
        <script src="js/lib/angular-route.min.js"></script>
        <script src="js/main.js"></script>
        <script src="js/FotosController.js" ></script>
        <script src="js/directives/minhasDiretivas.js"></script>

    </head>
    <body>
        <div class="container">
            <ng-view></ng-view>
        </div><!-- fim container -->
    </body>
</html>


<!-- public/partials/principal.html -->


<div class="jumbotron">
    <h1 class="text-center">Alurapic</h1>
</div>

<div class="row">
    <div class="col-md-12">
    <form>
         <input class="form-control" placeholder="filtrar pelo título da foto" ng-model="filtro" ng-model-options="{ debounce: 500 }">
    </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>
    </meu-painel>
</div>

angular.module('alurapic', ['minhasDiretivas', 'ngAnimate', 'ngRoute'])
    .config(function($routeProvider, $locationProvider) {

        $locationProvider.html5Mode(true);

        $routeProvider.when('/fotos', {
            templateUrl: 'partials/principal.html',
            controller: 'FotosController'
        });

       // foto no singular!

        $routeProvider.when('/fotos/new', {
            templateUrl: 'partials/foto.html'
        });

        $routeProvider.otherwise({redirectTo: '/fotos'});

    });
7 respostas

Oi Thiago! No Chrome, alguma mensagem de erro é exibida? Ela pode indicar o problema direto, por isso quero vê-la antes de opinar.

Professor,

Encontrei os seguintes erros no console do Chrome:

Failed to parse SourceMap: http://localhost:3000/js/lib/angular.min.js.map minhasDiretivas.js:23 Uncaught SyntaxError: Invalid shorthand property initializer Failed to parse SourceMap: http://localhost:3000/js/lib/angular-animate.min.js.map angular.min.js:6 Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.15/$injector/modulerr?p0=alurapic&p1=Error%…0d%20(http%3A%2F%2Flocalhost%3A3000%2Fjs%2Flib%2Fangular.min.js%3A17%3A381)(anonymous function) @ angular.min.js:6(anonymous function) @ angular.min.js:35r @ angular.min.js:7g @ angular.min.js:34ab @ angular.min.js:38d @ angular.min.js:17uc @ angular.min.js:18Jd @ angular.min.js:17(anonymous function) @ angular.min.js:250a @ angular.min.js:164c @ angular.min.js:32 Failed to parse SourceMap: http://localhost:3000/js/lib/angular-route.min.js.map

.

solução!

O problema esta na declaração de sua diretiva. Cole o código do seu arquivo de diretivas para que eu possa olhar. É erro de digitação.

angular.module('minhasDiretivas', []) .directive('meuPainel',function() { var ddo = {};

ddo.restrict = "AE";

ddo.scope = { titulo: '@' };

ddo.transclude = true;

ddo.templateUrl = 'js/directives/meuPainel.html';

return ddo; }).directive('minhaFoto',function(){ var ddo = {};

ddo.restrict = "AE";

ddo.scope = { titulo : '@', url = '@' };

ddo.template = '{{titulo}}';

});

Consegui resolver, valeu professor!

Show!