2017-07-04 1 views
1

Je URL comme ceci:AngularJS routeParam ne fonctionne pas

http://localhost:3000/details/59567bc1de7ddb2d5feff262 

et je veux obtenir le paramètre id

59567bc1de7ddb2d5feff262 

Mais pour certaines raisons routeParam retourne toujours undefined

Mon contrôleur est :

task.controller('ctrla', function($rootScope, $scope, $http, $timeout, $routeParams){ 
    $scope.first = 1; 
    console.log($routeParams);   
}); 

routes:

task.config(function ($routeProvider, $locationProvider){ 
$routeProvider.when('/details/:id', { 
     templateUrl: "details.html", 
     controller: "ctrla" 
    }) 

}); 

toute aide sera une vie à sauver.

+0

comment sont définies vos routes? – Sajeetharan

+0

je mets à jour ma question avec la définition des routes s'il vous plaît donnez-lui un coup d'oeil – Mustapha

Répondre

1

Assurez-vous que vous avez défini les routes urls comme mentionné ci-dessous,

app.config(['$routeProvider', function($routeProvider) { 
    $routeProvider 
    .when('/home', { 
     template: "HI this is home Screen", 
     controller: 'ctrla' 
    }) 
    .when('/details/:id', { 
     templateUrl: "template.html", 
     controller: 'profileController' 
    }) 
    .otherwise({ 
     redirectTo: '/home' 
    }) 
}]); 

DEMO

+0

Merci beaucoup pour votre réponse et la démo – Mustapha

1

Si yu ont itinéraire deinition défini comme

$routeProvider.when('/details/:id', { 
     templateUrl: "partial.html", 
     controller: "ctrla" 
    }) 

Ensuite, dans le contrôleur, vous devriez obtenir sa valeur

task.controller('ctrla', function($rootScope, $scope, $http, $timeout, $routeParams){ 
    $scope.first = 1; 
    console.log($routeParams.id); 

}); 
+0

j'ai essayé ce que vous avez suggéré mais me donne encore indéfini !! – Mustapha

+0

Et pouvez-vous voir la vue correctement? aussi utilisez-vous $ locationProvider.html5mode (comme il n'y a pas de # dans votre URL)? – Shantanu

+0

Je ne savais pas que Merci pour votre réponse – Mustapha