加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS ui-router状态不会在后面刷新

发布时间:2020-12-17 18:03:23 所属栏目:安全 来源:网络整理
导读:我有一个应用程序设置有2个状态,A和A.B这样做: $stateProvider.state('A',{ url: "/A/{aId}",controller: 'AController',templateUrl: function($stateParams) { return "/A/" + $stateParams.aId + "/layout"; } }).state('A.B',{ url: "/B/{bId}",control
我有一个应用程序设置有2个状态,A和A.B这样做:

$stateProvider.state('A',{
        url: "/A/{aId}",controller: 'AController',templateUrl: function($stateParams) {
            return "/A/" + $stateParams.aId + "/layout";
        }
    }).state('A.B',{
        url: "/B/{bId}",controller: 'BController',templateUrl: function($stateParams) {
            return "/A/" + $stateParams.aId + "/B/" + $stateParams.bId+ "/layout";
        }
    });

当我处于AB状态时(url会像#/ A / 12 / B / 123那样)并使用浏览器的后退按钮返回或者转换为url更改,状态AB被清除但是状态A没有渲染回来.据我所知,控制器没有被触发.

因此,如果我在A / 12 / B / 123并且回到A / 12没有任何反应,但如果我回到A / 13(使用transitionTo)它会渲染.

在angular-ui-router项目的示例应用程序中,这种情况很好,所以我认为我的设置可能有问题.我认为值得一提的是,在index.html上,我有一个ui-view,其中包含状态A,而状态A的模板具有另一个ui-view,用于加载状态A.B

如果有人可以提供帮助,我会非常感激

解决方法

你试过用这个:

$state.reload()

它是一种强制重新加载当前状态的方法.重新解析所有结算,不重新触发事件,并重新实例化控制器

这只是一个别名:

$state.transitionTo($state.current,$stateParams,{ 
      reload: true,inherit: false,notify: false 
    });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读