Angularjs Angular UI路由器:如何使用不同的$stateParam进入相同的状态?
我想知道如何使用不同的Angularjs Angular UI路由器:如何使用不同的$stateParam进入相同的状态?,angularjs,angular-ui-router,state,Angularjs,Angular Ui Router,State,我想知道如何使用不同的$stateParam进入相同的状态 我试着去: $state.go('^.currentState({param: 0})') 但是,它不起作用。这些参数是go()方法的第二个参数 $state.go('^.currentState', {param: 0}) 转换到新状态的简便方法$state.go在内部调用$state.transitiono,但会自动将选项设置为{location:true,inherit:true,relative:$state.$curren
$stateParam
进入相同的状态
我试着去:
$state.go('^.currentState({param: 0})')
但是,它不起作用。这些参数是
go()
方法的第二个参数
$state.go('^.currentState', {param: 0})
转换到新状态的简便方法$state.go在内部调用$state.transitiono,但会自动将选项设置为{location:true,inherit:true,relative:$state.$current,notify:true}。这允许您轻松使用绝对或相对路径,并仅指定要更新的参数(同时允许未指定的参数从当前活动的祖先状态继承)
如果要重新加载状态,还可以使用ui sref opts。传入
reload:true
选项将重新加载当前状态
申请人
在我的例子中,我想重新加载相同的状态,但参数不同。(null
在此特定事件中)
情况如下:我们有一个不同公司的网站,每个公司都有自己的品牌页面。您可以访问其他公司的页面,并且有一个菜单项可以快速访问您自己的页面
公司页面位于/company/somecompanyid
下,而您自己的页面将在访问/company
时加载。不添加id。或代码中的公司id:null
问题当您查看随机的公司页面时,比如说
公司/123456
,然后单击指定的菜单项访问您自己的页面,不会发生任何事情Ui路由器相信你在同一条路线上,只是让你保持在那里 解决方案
将以下内容添加到模板:
您可能需要使用这段代码:
最简单的解决方案是->
您可以使用相同的控制器和相同的html页面设置2个状态,并逐个重定向
优点:不需要处理过去的历史,所有的工作都非常流畅
.state('app.productDetails', {
url: '/productDetails',
cache: false,
views: {
'menuContent': {
templateUrl: 'src/products/productDetails/productDetails.html',
controller: 'ProductDetailsCtrl'
}
},
params: {
productID: 0,
modelID: 0
}
})
.state('app.modelDetails', {
url: '/modelDetails',
cache: false,
views: {
'menuContent': {
templateUrl: 'src/products/productDetails/productDetails.html',
controller: 'ProductDetailsCtrl'
}
},
params: {
productID: 0,
modelID: 0
}
})
此外,我还发现以下方法是有效的:$state.go('.',{param:0})^.
是什么意思?@LeonGaban这是一个简单的方法,如何说父状态。。没有明确的命名。选中-$state.go('^')
-将转到父级状态$state.go('^.sibling')
-将转到同级状态谢谢!顺便说一句,我自己也遇到了一个州导航问题,介意看看吗
$state.go('.', {param: someId});