在调用$ state.go时保持状态参数

时间:2016-10-03 04:02:28

标签: angular-ui-router

有一个路由参数,表示当前的网站语言,在抽象app状态中定义。

angular.module("app", ["ui.router"]).config(["$stateProvider",
  function($stateProvider) {
    $stateProvider
      .state('main', {
        url: '/:lng',
        abstract: true,
        template: '<div ui-view></div>'
      })
      .state('main.index', {
        url: '/',
        template: '<span>Index</span>'
      })
      .state('main.gallery', {
        url: '/gallery',
        template: '<span>Gallery</span>',

      })
  }
]);

现在,每次调用$state.go时,我都必须将lng属性添加到路由参数列表中,例如

$state.go('main.index', { lng: 'en' });

即使lng的当前值为en

除非我们通过将它传递给路由参数列表明确地改变它,否则无论如何使lng保持与前一状态相同?

1 个答案:

答案 0 :(得分:0)

您可以在状态定义中为lng参数添加默认值:

  .state('main', {
    url: '/:lng',
    abstract: true,
    template: '<div ui-view></div>'
    params: {
      lng: 'en'
    }
  })

可以找到更多详细信息here