【发布时间】:2018-07-13 13:35:48
【问题描述】:
我在 Angular 中创建了一个服务,就像:
function dbService($http) {
var instance = '';
var service = {
add: add,
instance: instance
};
return service;
function add(object) {
return $http.post('/api/' + this.instance, object);
}
}
我只在每次调用服务时更改实例属性,因为我注意到每个服务都具有相同的配置,但只更改控制器名称。有些人喜欢:
$scope.send() = function() {
dbService.instance="Cars";
dbService.add($scope.car).then(
function(data) {
console.log(data);
},
function(error) {
console.log(error);
}
};
什么样的问题可以给我这种方法?我应该为每个 Controller 创建一个服务(例如“CarsService”等),还是应该继续这种方法?
提前致谢!
【问题讨论】:
-
这里使用dbService单例对象是一个错误。应该有多个对象实例。它们应该是不同的服务(这对于没有逻辑但
add方法的当前服务没有意义,但在它负责处理响应时才有意义,因为它应该在正确的 MVC/MVVM 中)。或者dbService可以变成dbServiceFactory并在控制器中使用时返回一个类或对象实例,例如var carDbService = dbServiceFactory('car')(这取决于您需要什么,因为 carDbService 在不同的控制器中不会是单例)。
标签: angularjs angularjs-service