【问题标题】:ui router change abstract parent url paramsui 路由器更改抽象父 url 参数
【发布时间】: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


【解决方案1】:

我会将 id 存储在服务中,并将该服务注入到使用它的不同控制器中。

【讨论】:

    猜你喜欢
    • 2021-06-03
    • 2015-10-02
    • 1970-01-01
    • 2016-07-17
    • 2011-11-11
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 2022-08-22
    相关资源
    最近更新 更多