Угловое удлинение против $provide.decorator
Я сбит с толку. Не могли бы вы уточнить разницу между angular.extend() и $ provide.decorator? Why and when use the second one?
Декоратор делает что-то другое, чем расширение? Я не могу найти ответ после выполнения поиска...
1 ответ
angular.extend()
это просто еще одна реализация стандартного инструмента расширения JavaScript. Вы можете найти много других похожих (если не идентичных) реализаций, таких как Object.assign (), jQuery's, Underscore's...
$provide.decorator()
хотя это угловая реализация шаблона декоратора, и она намного мощнее, поскольку позволяет прозрачно изменять поведение поставщика, т. е. не нужно изменять зависимые объекты. Пример в документе довольно прост: каждый раз $log.warn()
сообщение будет автоматически добавлено к префиксу 'Decorated Warn: '
,