【发布时间】:2016-06-21 00:20:32
【问题描述】:
我正在尝试开发一种“模型”服务,以使我的共享数据在我的控制器之间保持同步。 我最终得到了这个解决方案:
myApp.factory('UserService', function() {
return {
data: {
user: {
vm: {
firstName: '',
lastName: ''
},
save: function() {
console.log("save user");
}
},
settings: {
vm: {
theme: '',
language: '',
currency: ''
},
save: function() {
console.log("save user settings");
}
},
save: function() {
console.log("save all");
}
}
};
});
(为了更好地理解它是如何工作的,请在此处进行操作:http://jsfiddle.net/n36kpuf6/)。
我不认为这是一个糟糕的解决方案,它使我的 HTML 保持整洁,而且我一眼就能看出我可以在控制器中使用哪些功能,从而保持它们的纤细;在其他基于事件或 $scope 的数据共享解决方案中,我更喜欢它...
与此同时,我在想,也许,这有点困惑;所以我正在通过 John Papa 风格指南搜索如何更好地组织它,但我找不到关于这种“模型”服务的示例,只是基于方法的简单服务......所以我最终认为我错过了东西。
有人可以就如何更好地组织这项服务给我一些建议吗?
【问题讨论】:
-
“也许,有点糊涂” ...为什么?控制器应该是精益的,服务应该有尽可能多的业务逻辑。
-
好吧..我有相同结构的模型和功能;如果我的函数充满“真实”代码,它们会变得很长,并且整个结构不那么可读。
-
将函数写为对象下方的命名函数,然后将函数引用传递给您的
data对象 -
是的......我也在想同样的事情......还有什么别的吗?
标签: javascript angularjs coding-style angular-services