2017-07-04 3 views
1

Ich habe URL wie folgt aus:AngularJS routeParam arbeiten nicht

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

und ich möchte den Parameter id

59567bc1de7ddb2d5feff262 

Aber aus irgendwelchen Gründen routeParam immer wieder undefined

Mein Controller erhalten ist, :

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

Routen:

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

}); 

jede Hilfe ein Leben retten wird.

+0

Wie sind deine Routen definiert? – Sajeetharan

+0

ich aktualisiere meine frage mit der routen-definition bitte schau es dir an – Mustapha

Antwort

1

erhalten Sie unbedingt die Route Urls definiert haben, wie unten erwähnt,

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

Vielen Dank für Ihre Antwort und die Demo – Mustapha

1

Wenn yu Route deinition als

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

Dann Controller definiert haben, sollten Sie seinen Wert als

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

}); 
+0

ich habe versucht was du vorgeschlagen hast aber trotzdem mich undefined !! – Mustapha

+0

Und können Sie die Ansicht richtig sehen? verwenden Sie auch $ locationProvider.html5mode (da es keine # in Ihrer URL gibt)? – Shantanu

+0

Ich wusste das nicht Vielen Dank für Ihre Antwort – Mustapha

Verwandte Themen