我有一个应用程序,其位置设置在更改时更新货币/语言等。这在每个页面上都可见,因为它处于我的父状态。使用以下按钮改变位置时......
<button ui-sref="{location: 'Europe'}">Europe</button>
//(which generate a href of 'href="#/Europe/home"' on my homepage)
应用程序应重新加载当前状态和合适的视图,并使用新的位置参数值重新初始化状态控制器。
位置设置按钮处于我父状态的视图...
.state('root', {
abstract: true,
ncyBreadcrumb: {
skip: true
},
url: '/:location',
views: {
'@': {
templateUrl: function(params) {
return views + params.location + '/index.html';
},
controller: 'MainController as main'
}
},
params: {
location: null
}
})
我的孩子状态看起来像这样......
.state('root.home', {
url: '/home',
templateUrl: function(params) {
return views + params.location + '/home.html';
}
}
这在我加载的初始页面上运行正常。问题是如果我在主页上加载应用程序(例如),导航到另一个状态然后更改位置,用户将被抛回主页(或最初加载应用程序的任何页面)。
我认为这是因为当我浏览应用时,位置按钮的当前状态和生成的href不会改变以反映当前状态,但我无法解决它。我是如何引用位置按钮的ui-sref中的当前状态(未指定状态并仅更新{}中的参数)的问题?
我可以通过ng-click在我的控制器中执行$ state.go但是我会错过生成的href,这是我们需要的seo。
非常感谢任何解决方案。