2016-05-17 1 views
1

Je suis débutant avec AngularJS mais j'ai un problème et je ne sais pas comment y remédier.comment rediriger la page avec ng-clic en passant l'id dans l'URL

je vais vous l'expliquer,

Je relation OneToMany entre une table appelée « Référence » et « Critere » cela signifie que l'on « référence » devrait contenir beaucoup de « critères » donc j'énuméré tous les « Références "dans une table. Le principal problème vient quand je clique sur "Reference" il devrait me rediriger vers une page appelée "Critere" avec l'id de "Reference" cliqué dessus, et cette page "Critere" (Critere/idReference) sera contient tous les critères liés à cette "référence". Sachant que j'ai toutes les données au format JSON je travaille avec Spring Boot et Rest Api, je n'ai aucun problème à cause de Spring quand j'essaye de charger tous les "Criteres" liés à ce "References" ça arrive mais je ne sais pas comment le faire avec AngularJs.

Voici mon code:

<tr class="clickable-row" ng-init="chargerNoteReference(reference.idReference)" data-ng-click="redirectt(reference.idReference)"> 
<td>{{reference.titleReference}}</td> 
</tr> 

ici je charge toutes les références figurant sur une table avec une rangée cliquable

j'utilise un contrôleur

$scope.redirectt = function(x){ 
    $window.location.assign("/Critere/"+x); 
} 

je suis aussi la route Params

var app = angular.module("Entourage",['ngRoute']); 
app.config(function($routeProvider){  
$routeProvider 
.when('/Critere/:idReference',{ 
templateUrl: 'templates/Critere.html', 
controller : "EntourageController",    
})  
}) 

Voici la fonction que j'ai appelé dans les fichiers Critere

$scope.redirect = function(){ 
$scope.Critere={} 
$http.get("/references/criteres/"+$scope.idReference+"/"+$scope.idUser) 
.success(function(data){ 
$scope.Critere=data 
}); 
}; 

et voici mon fichier Critere

<tbody ng-repeat="critere in Critere"> 
<tr class="odd gradeX" > 
<td class="center" >{{critere.idCritere }}</td> 
<td class="center">{{critere.descriptionCritere }}</td> 
<td class="center"> {{critere.vue}}</td> 
</tr> 
</tbody> 

je suis aussi cette erreur:

Uncaught Error: [$injector:modulerr] and i'm using thymeleaf

<script th:src="@{https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-route.js}"></script> 
<script th:src="@{https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js}"></script> 
<script th:src="@{https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.js}"></script> 

Répondre

0

Vous ne devriez pas être en utilisant window.location, plutôt, le service $ location. Ie

$scope.redirect = function(path){ 
     $location.path(path); 
    } 

Après avoir injecté le service $ location dans le contrôleur.

+0

mais quand je l'utilise j'ai eu cette Url: "http: // localhost: 8080/Domaines #/Critere/1" pour moi je veux qu'il change ti "http: // localhost: 8080/Critere/1" je et je charge tous les "Criteres" appartient à la "référence" cliquée – marveshy