重新加载页面时控制器间通信失败

Communication between controller fail on page reload

本文关键字:控制器 通信 失败 新加载 加载      更新时间:2023-09-26

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

这个工作很好,直到发生了一件事。当我重新加载页面时,服务无法读取前一个控制器的$作用域。这可以用于单个页面中的控制器,但对于我的情况,我为Controller1和Controller2设置了不同的页面。

谁能给我一个解决这个问题的办法?参考

服务:

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:第一件事,如果你重新加载页面(浏览器重新加载),你使用angular的方式是错误的。

2: angular应该是单页应用。

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

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

5:与控制器共享数据的推荐方式有3种服务事件RootScope

我建议你使用服务或事件,如果你需要更多的帮助,请告诉我。