В угловых службы должны всегда возвращать это?

0

Является ли это хорошей практикой или требуется вернуть весь сервис через это? Что, если я опустил это? Все, что у меня есть в одном из моих сервисов, - простая функция

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?**

});
  • 0
    Можете ли вы связать код вашего сервиса, пожалуйста? Не очень понятно, что вы имеете в виду.
  • 0
    Я обновил мой пример, извините, что не включил код
Теги:
service

1 ответ

2
Лучший ответ

Угловая служба работает как экземпляр, поэтому не нужно ничего возвращать. Однако фабрики всегда должны что-то возвращать. Посмотрите разницу между службами и фабриками:

Сервисы

Синтаксис: module.service( 'serviceName', function );

Результат: при объявлении serviceName в качестве аргумента для инъекции вам будет предоставлен экземпляр функции. Другими словами, new FunctionYouPassedToService().

Заводы

Синтаксис: module.factory( 'factoryName', function );

Результат: при объявлении factoryName в качестве аргумента для инъекции вам будет предоставлено значение, которое возвращается, вызывая ссылку на функцию, переданную модулю.factory. Фабрика также может вернуть конструктор.

  • 0
    аааа! благодарю вас!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню