控制器之间的通信失败,页面重新加载

时间:2015-10-10 10:22:04

标签: javascript angularjs angularjs-directive angular-ui-router

我一直在使用以下参考来共享控制器之间的$ scope。我在xxx.html中使用Controller1,在yyy.html中使用Controller2。

直到有一件事情发生时,这个工作正常。当我重新加载页面时,该服务无法读取前一个控制器的$ scope。这可以在单个页面中用于控制器,但对于我的情况,我有不同的页面用于Controller1和Controller2。

任何人都可以给我一个解决方案吗?

Reference

服务:

app.factory('Scopes', function ($rootScope) {
    var mem = {};

    return {
        store: function (key, value) {
            $rootScope.$emit('scope.stored', key);
            mem[key] = value;
        },
        get: function (key) {
            return mem[key];
        }
    };
});

1 个答案:

答案 0 :(得分:0)

这可能会让你在这里工作更多。

1:如果你正在重新加载页面(浏览器重新加载),那么你使用的是角度错误的方式。

2:总是角度应该是单页应用。

3:这里你需要的是在状态改变之后共享数据(可能是)如果你使用$ state路由它不会重新加载但它会改变页面和URL。

4:在第三种情况下,您需要将数据存储在$ rootScope或$ parent $ scope中,然后您可以在任何下一个或上一个控制器中使用它。

5:有3种推荐的方法与控制器共享数据   服务   活动   RootScope

如果您需要更多帮助,请告知我们,我建议您使用服务或活动。