【问题标题】:router-ui re resolve dependencies not working (angularJS)router-ui 重新解决依赖项不起作用(angularJS)
【发布时间】:2015-11-10 16:57:16
【问题描述】:

我已经阅读了大量关于这个主题的帖子,但似乎没有一个对我有用。我做错了吗?

我使用的路由器有很多这样的状态:

$stateProvider.
            state('login', {
                url: '/login',
                templateUrl: 'view/login.html',
                controller: 'loginController',
                resolve: {
                    'Session': function (accountService) {
                        return accountService.pullSession;
                    }
                }
            }).

“拉”都是这样的

pullSession: $http.get('api/session').success(function (data) {
    classes = data;
}),

问题是,每次我登录/注销并更改状态时,会话都不会再次拉出,并且已经拉出的与会话相关的其他一些资源也不会再次拉出。

所以我几乎用 reload:true like 尝试了所有想法

$state.go('newstate', {reload:true});
and <a ui-sref="home" ui-sref-opts="{reload: true}">Home</a>

似乎没有任何效果。现在我在做

$window.location.reload() 

这确实会强制所有页面重新加载,但效率不高。

那么,你能看出我做错了什么吗?我该怎么办?

谢谢。

【问题讨论】:

    标签: javascript angularjs routing resolve


    【解决方案1】:

    你需要在 pullSession 中从你的 $http 返回一些东西。

    pullSession: $http.get('api/session').success(function (data) { classes = data; return classes; }),

    【讨论】:

    • 做到了。不起作用。第一次加载控制器时,所有依赖项也都加载了,但是如果我更改状态/控制器(即登录时)会话依赖项不会再次调用。
    • 查看您的代码 sn-p 更多,您正在决定如何重新加载您正在使用状态名称“home”和“newstate” - 解析仅适用于状态登录,所以那些不会工作。
    • 哦,我在这里只发布了一点我的代码,但我在每个州都有解析“会话”。恐怕我会造成一些混乱。它应该工作吗?我的意思是,当我改变状态时,所有的依赖关系都会再次解决?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 2017-03-18
    相关资源
    最近更新 更多