$stateParams returns empty object in angularjs

339 views Asked by At

I am using MEANstack. Here is the simple stateparams that returns the empty object. Code :

route.js

var app = angular.module('mean-blog.home', [
'ui.router']);

app.config(function($stateProvider, $urlRouterProvider){ $stateProvider

                .state('organizers', {
            url: '/organizers',
            templateUrl: '/home/templates/organizers.html',
            controller: 'OrganizerCtrl'
        })
                .state('viewprofile', {
            url: '/vieworganizer/:organizerid',
            templateUrl: '/home/templates/viewprofile.html',
            controller: 'viewProfileCtrl'
        })
    $urlRouterProvider.otherwise("/");
});

controller.js

.controller('viewProfileCtrl', function($scope, Users, $stateParams) {
    console.log($stateParams) //returns empty object
})

View File

 <p> {{organizer._id}}</p>
  <a ui-sref="vieworganizer({organizerid:organizer._id})">
      <i class="fa fa-edit"></i>Edit
</a>

This ui-sref is also giving me the following error.

Error: Could not resolve 'vieworganizer' from state ''
transitionTo@https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js:3140:17
go@https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js:3068:14
link/</transition<@https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js:4181:13
f/l<@https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:138:473
e@https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:40:72
nf/n.defer/c<@https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:44:155

If i open the direct url

http://localhost:3000/vieworganizer/59b8c14ebed9a011bc5acb54

it returns empty stateparams object.

Anyone who can help me to solve this issue!

2

There are 2 answers

6
Sajeetharan On

You do not have a state named vieworganizer , it should be

<a ui-sref="viewprofile ({organizerid:organizer._id})">
2
Gaurav Kumar Singh On

You need to update the view file

<p> {{organizer._id}}</p>
  <a ui-sref="viewprofile({organizerid:organizer._id})">
      <i class="fa fa-edit"></i>Edit
</a>

viewprofile is the state which is defined in app.config file for url /vieworganizer/:organizerid