Я много работал, Angular.js
и в целом считаю, что это интересный и мощный фреймворк.
Я знаю, что было много дискуссий по поводу услуг, фабрик, поставщиков и ценностей, но я все еще не совсем понимаю, что такое a Factory
.
Factory был определен в других обсуждениях StackOverflow следующим образом:
Заводы
Синтаксис: module.factory( 'factoryName', function );
Результат: при объявлении factoryName в качестве аргумента для инъекции вам будет предоставлено значение, которое возвращается при вызове ссылки на функцию, переданной в module.factory.
Я считаю, что это объяснение очень сложно понять, и оно не улучшает мое понимание того, что такое фабрика.
У кого-нибудь есть какие-либо объяснения или примеры из реальной жизни, чтобы рассказать о том, что такое a Factory
и почему вы должны использовать его вместо Service
, Provider
или другого?
Обновить
A service
содержит ссылку на любой объект .
A factory
- это функция, которая возвращает любой объект
A provider
- это функция, которая возвращает любую функцию
- уф -
источник
Factories
(цитируемый выше) был немного запутанным. Некоторые из приведенных ниже ответов сводятсяFactories
к тому, что даже я могу понятьОтветы:
Насколько я понимаю, все они практически одинаковы. Основные различия заключаются в их сложности. Провайдеры настраиваются во время выполнения, фабрики немного более надежны, а сервисы - простейшая форма.
Проверьте этот вопрос AngularJS: Сервис против провайдера против фабрики
Также эта суть может быть полезна для понимания тонких различий.
Источник: https://groups.google.com/forum/#!topic/angular/hVrkvaHGOfc
jsFiddle: http://jsfiddle.net/pkozlowski_opensource/PxdSP/14/
автор: Павел Козловский
источник
Provider > Factory > Service > Value
?Я вижу одно важное отличие в том, что вы можете запускать собственный код на заводе. Но в сервисе происходит только создание объекта.
источник
Мои два цента по этой теме. Я очень новичок и просто разбираюсь в Angular JS, и это было одной из вещей, которые меня сильно смущали, поэтому я изучил его довольно подробно. Я делал заметки для интервью, и это может быть полезно другим.
источник
Службы - это в основном объекты, в которых вы описываете класс конструктора объекта. Где-то глубоко внутри фреймворка вызывается функция Object.create (), а затем вы можете использовать службу, вызывая ее объект и методы с помощью контроллера. Factory, с другой стороны, не создает объект по умолчанию и, следовательно, требует, чтобы вы вернули все местоположение объекта, как только вы закончите определение всех атрибутов и методов.
источник