How to $state.go()

Is my $stateProvider:

$stateProvider .state('home', { url : '/', templateUrl : '/admindesktop/templates/main/', controller : 'AdminDesktopMainController' }).state('company', { url : '/company', templateUrl : '/admindesktop/templates/grid/', controller : 'CompanyGridController' }).state('company.detail', { url : '/{id:\d+}', //id is templateUrl : '/admindesktop/templates/company/detail/', controller : 'CompanyDetailController' }); 

It's work for 'company' state (I use ui-sref), but this code not work (called from 'company' state):

$state.go('.detail', { id: $scope.selectedItem.id //selectedItem and id is defined }); 

I read official docs and answers from StackOverflow, but I don't found solution. I can't use ui-sref, I use ui-grid, and new state opened after select one row from table for editing.

What i do wrong?

3 Answers

What would always work is the full state definition:

// instead of this // $state.go('.detail', { // use this $state.go('company.detail', { id: $scope.selectedItem.id //selectedItem and id is defined }); 

In doc there are defined these options, but they depend on CURRENT state:

to string
Absolute state name or relative state path. Some examples:

  • $state.go('contact.detail') - will go to the contact.detail state
  • $state.go('^') - will go to a parent state
  • $state.go('^.sibling') - will go to a sibling state
  • $state.go('.child.grandchild') - will go to grandchild state
2

My error is in regular expression, really:

.state('company.detail', { url : '/{id:\d*}', templateUrl : '/admindesktop/templates/company/detail/', controller : 'CompanyDetailController' }) 

{id:\d*} worked (integer id).

To load the current state. Check this out.

$state.go($state.current, {}, {reload: true}); //second parameter is for $stateParams 

Reference

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like