我正在创建一个中型角应用,需要存储数据并在用户旅程结束时使用它发送到服务器(公司安全策略是客户数据的一种传输 - 除非100%不可避免 - 别问!)
所以我一直在做一些阅读,因为仍然是一个新的角度,并认为我已经决定最好和最干净的方法来做一个“dataFactory”或服务,以免污染应用程序与“主控制器”等等
我的问题是,在这个服务中,我是否只有一个普通变量,我可以为其分配键:值或者更好的是在服务中创建一个cacheFactory来存储数据?
每个人的利弊是什么?
答案 0 :(得分:1)
您需要创建service
来存储数据。
Globals are ever a bad practice - 对于代码中某处遗失的normal object
,情况也是如此。
以下解决方案:
// service
myApp.service('controllerSharingData', function() {
var __variables = {};
return {
get: function(varname) {
return (typeof __variables[varname] !== 'undefined') ? __variables[varname] : false;
},
set: function(varname, value) {
__variables[varname] = value;
}
};
});
// controllers
myApp.controller('IndexCtrl', function($scope, controllerSharingData) {
controllerSharingData.set('toto', 'hello world');
});
myApp.controller('ListCtrl', function($scope, controllerSharingData) {
alert(controllerSharingData.get('toto'));
});