Bonjour,
Je cherche comment récupérer un paramétre dans un controlleur qui envoyé dans url.
Voila mon code html:
<tr ng-repeat="user in ListUser">
<td>
<strong>{{user.nom}} et l'id: {{user.id}}</strong> <!-- j'ai alors emile et l'id: 1 -->
</td>
<td>
<a ng-href="#/Utilisateur/{{user.id}}" class="btn btn-primary btn-sm" name="ConsulterCheckLists"> <!--ici l'id est bien affiché /Utilisateur/1 -->
<i class="md md-receipt"></i>
</a>
</td>
</tr>
Code angualarjs:
var app = angular.module('Mainapp', ['ngRoute','file-model','ui.bootstrap','ngMessages']);
app.config(function($routeProvider) {
$routeProvider
.when('/Utilisateur/:idUser', { // ici le passage de l'idUser
controller:'UtilisateursController',
templateUrl: 'Views/indexUsers.html'
}) .otherwise({
redirectTo: '/',
});
};
app.controller("UtilisateursController",['$scope','$routeParams','$window',function($scope,$http,$window,$routeParams)
{
//Get ID out of current URL
var UserId = $routeParams.idUser; // Cannot read property 'idUser' of undefined
console.log("id of user "+UserId);
}]);
Aprés un test, j'ai dans le console ce message d'eurreur:
angular.js:11598 TypeError: Cannot read property 'idUser' of undefined
Merci de m'aider pour résoudre ce probléme.
J'ai résolu mon probléme en changeant la définition des paramétres du mon controleur.
app.controller("UtilisateursController",function($scope,$http,$window,$routeParams)
le console log de $routeParam donne quoi? petit conseil en passant, ui-router est un router plus performant et plus complet que le router de base d'angular
Bonsoir.
Le problème vient du fait qu'il manque '$http' dans ton tableau à la ligne 1. De plus, L'ordre des paramètres du tableau ne colle pas avec l'ordre des imports dans la fonction.
Merci à vous
Defy , le console log de $routeParam n'affiche rien sur le navigateur méme si j'ai installé le ui-router.
prbaron j'ai modifier cette ligne comme tu as dit, mais rien à changer:
app.controller("UtilisateursController",['$scope','$http','$window','$routeParams',function($scope,$http,$window,$routeParams)