【发布时间】:2016-12-04 10:26:58
【问题描述】:
下面是为我们的项目设置 ui-router 状态提供程序的方式。在下面显示它的一部分。
$stateProvider
.state('Parent', {
url: '/mainpath/:Id',
templateUrl: getViewUrl('Main.html'),
controller: 'MainController',
controllerAs: 'main',
abstract: true,
resolve: {
})
.state('Parent.Child', {
templateUrl: getViewUrl('Child.Html'),
controller: 'ChildController',
controllerAs: 'child',
url: '/child',
requireADLogin: true
})
.state('Parent.Child1', {
templateUrl: getViewUrl('Child1.Html'),
controller: 'Child1Controller',
controllerAs: 'child1',
url: '/child1',
requireADLogin: true
})
.....更多的子状态。 父路径包含 url 作为 '/mainpath/:Id',Id 是父级的一部分,基于此值,父级在加载任何子状态之前运行许多解析(父级抽象不能导航到任何方式) .
最终的 URL 看起来像 http://something/x.html/mainpath/124353534/child1,最终的 html 包含顶部部分是父部分,下面部分包含子部分
<Html>
<Parent>
<Child>
</Child>
<Parent>
</Html>
在父 HTML 上有一个下拉列表来更改路径 '/mainpath/:Id' 中的 Id(这是问题所在),下拉列表中的这个值在主控制器(父级)和当前使用 $state.go('传递新 ID 导致子值将根据此 ID 更改') 重新加载子状态。一切正常,只是我无法更改 URL 中的 Id 值。
请大家帮忙解决一下。
【问题讨论】:
-
在导航到子状态 $state.go('childstate', {"Id" : new value}, 'reload : childstate'); 时通过更新参数使其正常工作;
标签: angularjs angular-ui-router