我一直在使用以下参考来共享控制器之间的$ scope。我在xxx.html中使用Controller1,在yyy.html中使用Controller2。
直到有一件事情发生时,这个工作正常。当我重新加载页面时,该服务无法读取前一个控制器的$ scope。这可以在单个页面中用于控制器,但对于我的情况,我有不同的页面用于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];
}
};
});
答案 0 :(得分:0)
这可能会让你在这里工作更多。
1:如果你正在重新加载页面(浏览器重新加载),那么你使用的是角度错误的方式。
2:总是角度应该是单页应用。
3:这里你需要的是在状态改变之后共享数据(可能是)如果你使用$ state路由它不会重新加载但它会改变页面和URL。
4:在第三种情况下,您需要将数据存储在$ rootScope或$ parent $ scope中,然后您可以在任何下一个或上一个控制器中使用它。
5:有3种推荐的方法与控制器共享数据 服务 活动 RootScope
如果您需要更多帮助,请告知我们,我建议您使用服务或活动。