AngularJs ui-router $location or $state?

2019-05-19 01:52发布

问题:

How can I transform this:

$location.path('/app/home/' + id).search({x:y});

to this:

$state.go('/app/home/' + id).search({x:y});

I tried, but I actually can't get enough information how to achieve that...

回答1:

There is nice documentation (while deprecated, still really clear):

$state.go(to [, toParams] [, options])

Let's say that the state definitions are looking like this:

.state('app', { // parent app
  url: '/app',
  ...
})
.state('app.home', {
  url: '/home/:x',         // the param named x
  ...

Then you will do

$state.go('app.home', {x:y});

This Q&A could help as well:

  • Angular ui-router - how to access parameters in nested, named view, passed from the parent template?