从 chrome 开发人员更新 angualar.js 工厂。工具

Update angualar.js factory from chrome dev. tools

有没有办法覆盖从开发工具下载的 angular.js factory
我想从客户端添加一些日志语句,因为我无法通过部署代码来完成。只需 运行 控制台中的更新功能即可轻松更新正常 Javascript 功能。
但是,我无法做到 angular.js factories

普遍的回答是没办法。 Angular services are singletons, and once the service was instantiated, the instance is stored in private variable 没有机会覆盖它。

但是,如果将工厂实例化为具有一堆方法的对象,则可以对这些方法进行猴子修补:

var factory = angular.element(document.querySelector('.ng-scope'))
  .injector()
  .get('factoryName');

var factoryMethod = factory.methodName;
factory.methodName = function () {
  console.log(arguments);
  return factoryMethod.apply(factory, arguments);
};

在其他情况下,秘诀是在引导过程中使用 Greasemonkey / Tampermonkey 劫持应用程序。这使得提供覆盖原始模块组件的全新模块成为可能。或者为原始模块提供额外的 config 块,其中定义的工厂可以用 $provide.decorator or redefined with $provide.factory.

修改