I'm using ui.router to load a view then different APIs route that need 2 params : username and id
app.route.js
angular
.module('app.route',['ui.router'])
.config([
'$stateProvider',
'$urlRouterProvider',
function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.when('', '/{username}/{id:int}');
$urlRouterProvider.when('/', '/{username}/{id:int}');
$urlRouterProvider.otherwise('/{username}/{id:int}');
$stateProvider.state('module', {
url: '/{username}/{id:int}',
templateUrl: 'app/module/module.html',
controller: 'ModuleController',
});
}
]);
module.controller.js
function ModuleController($state, $stateParams) {
console.log('$stateParams: ', $stateParams); // returns empty
console.log('$state.params: ', $state.params); // returns empty
}
even if my url seems fine (eg. http://myurl.com/#/johndoe/2 ) both params are ignored. Do I miss something ?
Here's the output :
$stateParams: Object {}
$state.params: Object {}
I don't have any errors related to it. I get some 404 about routes because of course, params are expected.
angular.controller('ModuleController', function($state, $stateParams){...})$stateand$stateParamsin your controller declaration..controller('ModuleController', ["$state", "$stateParams", ModuleController]);