使用ES6模块时使用角度服务是否有意义?例如,我们的代码中需要一个单例模块(userService
),我们可以这样做:
var app = angular.module('app', []);
app.service('userService', function(){
this.users = ['John', 'James', 'Jake'];
});
app.controller('FooController', ['$scope', 'userService', function($scope, userService){
console.log(userService);
}]);
但我们可以在单独的文件中定义服务:
/* ./user-service.js */
export default users = ['John', 'James', 'Jake'];
,然后像这样编写代码:
var app = angular.module('app', []);
var userService = require('./user-service')
app.controller('FooController', ['$scope', function($scope){
console.log(userService);
}]);
和结果将与使用的服务完全相同。那么为什么在我们可以使用模块时使用角度服务?
答案 0 :(得分:2)
是的!这很有道理。
服务在您的应用程序中实现特定的责任,在数据存储和视图之间移动数据。
模块允许您组织代码并分离具有不同职责的部分。
通过将每个服务放入模块,您可以更轻松地浏览和测试代码。很容易找到实现责任的所有代码。
答案 1 :(得分:1)
资料来源:Difference between service, directive and module =)
来自我自己的personal notes(主要是来自文档,谷歌小组帖子和SO帖子的片段):
<强>模块强>
<强>服务强>
指令(下面的一些项目基本上都是相同的,但我发现有时候略有不同的措辞有很大帮助)
在模块中定义和分组Angular事物(依赖注入事物) 在服务中共享数据并包装Web服务器交互 扩展HTML并在指令中执行DOM操作 并使控制器成为&#34;瘦&#34;尽可能。