2016-04-20 3 views
1

У меня есть кнопка с ng-click, через которую я передаю объект по параметру функции, эта функция должна перенаправить меня на другую страницу с идентификатором объекта, который я передал ему, а другой контроллер получить его, найти в bd и показать его на мой взгляд, но кнопка не работает, она просто перенаправляет меня на $ routeProvicer.otherwise ('/') домой. Но если я набираю руководство localhost: 3000/admin/1241245124 < = id он отлично работает ...Перенаправление не работает

Любая помощь приветствуется, я оставляю здесь свой код.

admin.html

<h1>Admin Panel</h1> 
<hr> 
<div class="row"> 
    <div class="col-md-6"> 
    <div class="panel panel-default"> 
     <div class="panel-heading"> 
     <h3 class="panel-title">Productos</h3> 
     </div> 
     <div class="panel-body"> 
     <table class="table"> 
      <tr> 
      <td>Titulo</td> 
      <td>Tipo</td> 
      <td>Autor</td> 
      <td>Creado</td> 
      <td>Acciones</td> 
      </tr> 
      <tr ng-repeat="product in products"> 
      <td><a ng-href="{{}}">{{product.nombre}}</a></td> 
      <td>{{product.tipo}}</td> 
      <td>{{product.autor}}</td> 
      <td>{{product.creado | date}}</td> 
      <td><a href="#" class="btn btn-warning" ng-click="deleteBook(product)">Borrar</a> &nbsp; &nbsp;<a href="#" class="btn btn-info" ng-click="editBook(product)">Editar</a></td> 

      </tr> 
     </table> 
     </div> 
    </div> 
    </div> 
    <div class="col-md-6"> 
    <div class="panel panel-default"> 
     <div class="panel-heading"> 
     <h3 class="panel-title">Articulos</h3> 
     </div> 
     <div class="panel-body"> 
     Panel content 
     </div> 
    </div> 
    </div> 
</div> 

admin.js

'use strict'; 

angular.module('myApp.admin', ['ngRoute']) 

.config(['$routeProvider', function($routeProvider) { 
    $routeProvider.when('/admin', { 
    templateUrl: 'admin/admin.html', 
    controller: 'AdminCtrl' 
    }); 
    $routeProvider.when('#/admin/:id', { 
    templateUrl: 'admin/edit.html', 
    controller: 'AdminEditCtrl' 
    }); 
}]) 

.controller('AdminCtrl', function($scope, $http,librosFactory, $location) { 

    librosFactory.getLibros().success(function(libros){ 
     $scope.products = libros; 
    }); 

    $scope.deleteBook = function(book){ 
     console.log(book); 
     librosFactory.deleteBook(book).success(function (book,err) { 
      if (err) console.log(err); 
      else console.log("libro borrado"); 
     }); 
    }; 

    $scope.editBook = function (book) { 
     if(book._id) { 
      console.log(book); 
      $location.url('#/admin/'+book._id); 
     } 
     else { 
      console.log('erroror'); 
     } 

    } 


}) 
.controller('AdminEditCtrl', function ($scope, $routeParams, librosFactory) { 
    librosFactory.searchById($routeParams.id).success(function (book, err) { 
     if(err) console.log(err); 
     console.log(book) 

     $scope.product = book; 
    }) 
}); 
+0

Попробуйте без '#'. т. е .: '$ location.url ('/ admin /' + book._id);'. – Lex

+0

Он не работает ни ...:/ – FridoxFL

ответ

1

Попробуйте удалить # из HREF атрибута в <a> пусть это будет href=""

+0

Да, это была ошибка, спасибо вам :) – FridoxFL

Смежные вопросы