Oi Flávio. Ainda não. Já testei no chrome e o problema permanece.
Aqui vai meu foto-controller.js:
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';
})
}
}
};
});
aqui vai meu principal.html:
<div class="jumbotron">
<h1 class="text-center">Alurapic</h1>
</div>
<p ng-show="mensagem.length" class="alert alert-info">{{mensagem}}</p>
<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" type="button">Nova foto</a>
</span>
<input class="form-control" placeholder="filtrar pelo título da foto" ng-model="filtro" ng-model-options="{ debounce: 500 }">
</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}}">
<img class="img-responsive center-block" src="{{foto.url}}" alt="{{foto.titulo}}">
<a class="btn btn-primary btn-block" href="/fotos/edit/{{foto._id}}">Editar</a>
<button class="btn btn-danger btn-block" ng-click="remover(foto)">Remover</button>
</meu-painel>
</div>
aqui vai o 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>
aqui vai o main.js:
angular.module('alurapic', ['minhasDiretivas', 'ngAnimate', 'ngRoute'])
.config(function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.when('/fotos', {
templateUrl: 'partials/principal.html'
, controller: 'FotosController'
});
$routeProvider.when('/fotos/new', {
templateUrl: 'partials/foto.html'
, controller: 'FotoController'
});
$routeProvider.when('/fotos/edit/:fotoId', {
templateUrl: 'partials/foto.html'
, controller: 'FotoController'
});
$routeProvider.otherwise({
redirectTo: '/fotos'
});
});
Valeu!
Renato