有一个路由参数,表示当前的网站语言,在抽象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
保持与前一状态相同?
答案 0 :(得分:0)
您可以在状态定义中为lng参数添加默认值:
.state('main', {
url: '/:lng',
abstract: true,
template: '<div ui-view></div>'
params: {
lng: 'en'
}
})
可以找到更多详细信息here