Является ли это хорошей практикой или требуется вернуть весь сервис через это? Что, если я опустил это? Все, что у меня есть в одном из моих сервисов, - простая функция
angular.service('weatherService', function(){
var _this = this;
//default city
this.city = "New York, NY";
this.updateCity = function(string){
_this.city = string;
}
});
против
angular.service('weatherService', function(){
var _this = this;
//default city
this.city = "New York, NY";
this.updateCity = function(string){
_this.city = string;
}
return this <-------**is this required?**
});
Угловая служба работает как экземпляр, поэтому не нужно ничего возвращать. Однако фабрики всегда должны что-то возвращать. Посмотрите разницу между службами и фабриками:
Синтаксис: module.service( 'serviceName', function );
Результат: при объявлении serviceName в качестве аргумента для инъекции вам будет предоставлен экземпляр функции. Другими словами, new FunctionYouPassedToService()
.
Синтаксис: module.factory( 'factoryName', function );
Результат: при объявлении factoryName в качестве аргумента для инъекции вам будет предоставлено значение, которое возвращается, вызывая ссылку на функцию, переданную модулю.factory. Фабрика также может вернуть конструктор.