在 $state.go 中使用可选参数

Use optional parameters in $state.go

我有一个网站 AngularJS 和 ui-router。我定义了2个状态如下:

.state('home', {
       url: '/home/{id}',
       ...
})
.state('edit', {
       url: '/edit/{id}?connected&ifIni&redirectToRun',
       ...

在控制器中,我可以使用 $state.go('home', { id: id }) 导航到 home 页面。

我的问题是我是否可以使用 $state.go('edit', { id: id, connected: connected, ifIni: ifIni, redirectToRun: redirectToRun }) 导航到 edit 页面。

您可以通过两种不同的方式做到这一点,一种是在 routeConfiguration 中添加 params,另一种是将 query parameters 添加到 URL

添加参数:

路线配置:

$stateProvider.state('edit', {
  templateUrl:'edit.html',
  controller:'editController',
  params: {
    'id': ''
    'referer': '', 
    'connected': '', 
    'ifIni': '',
    'redirectToRun': ''
  }
});

重定向:

$state.go('edit', { id: id, connected: connected, ifIni: ifIni, redirectToRun: redirectToRun })

如果要使用查询参数:

路线配置:

$stateProvider.state('edit', {
  url: '/edit/{id}?connected&ifIni&redirectToRun',
  templateUrl:'edit.html',
  controller:'editController'
});

重定向:

$state.go('edit', { id: id, connected: connected, ifIni: ifIni, redirectToRun: redirectToRun })

Here is the Documentation