2016-04-20 3 views
1

Ich habe eine Schaltfläche mit NG-Klick, die ich ein Objekt von Parameter an eine Funktion übergeben, die Funktion muss mich auf eine andere Seite mit der ID des Objekts, das ich an sie weitergeleitet habe, und einen anderen Controller empfange es, suche es in der bd und zeige es in meiner Sicht, aber die Schaltfläche funktioniert nicht, es leitet mich einfach an den $ routeProvicer.otherwise ('/') der Heimat ab. Aber wenn ich manuell localhost: 3000/admin/1241245124 < = die ID es funktioniert perfekt ...Umleitung funktioniert nicht

Jede Hilfe wird geschätzt, ich habe Sie hier unten meinen Code.

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

Versuchen ohne die '#' sein zu entfernen. d. h .: '$ location.url ('/ admin /' + book._id);'. – Lex

+0

Es funktioniert auch nicht ...:/ – FridoxFL

Antwort

1

Versuchen Sie das # aus dem Attribut href im <a> lassen href="" es

+0

Ja, das war der Fehler, danke dir :) – FridoxFL

Verwandte Themen