2015-12-24 1 views
0

Завод может возвращать как примитивы, так и объекты. Тогда какова будет причина использования сервиса для возврата объектов (удобство ввода типа)?Почему служба AngularJS может возвращать только объекты, когда фабрика может возвращать как примитивы, так и объекты?

// factory 
app.factory('factoryService',function(){ 
    var returnObj = function() { 
    }; 

    return new returnObj(); 
}) 

// service 
app.service('service',function(){ 
    return this; 
}); 
+0

Что вы хотите (или уже сделали!) Заметить, что 'фабрика' на самом деле почти универсальна и может легко выполнять ту же самую вещь, что и' constant', 'service', ... do. – bardzusny

+1

@bardzusny это может заменить стоимость и обслуживание, но не для постоянной. Константы доступны в фазе конфигурации. Сервисов, созданных на заводе, нет. –

ответ

0

Причина - товар. Если у вас есть функция-конструктор, вы можете передать ее service(), а не создавать фабрику, которая вызывает функцию-конструктор и возвращает созданный объект.

BTW, factory() - это еще один товар, позволяющий создать провайдера с функцией , возвращающей сервис. Это просто делает код короче.