我有一个用 typescript 写成的服务作为类。在此类中,我定义了一个静态工厂,用于注入(inject)依赖项。

当我压缩我的应用程序时,依赖项正在被压缩,并且我收到未定义的提供程序错误。

这是我的服务:

export class TInterceptor {
public static $inject = ['$q', '$rootScope'];
public static Factory($q:ng.IQService, $rootScope:ng.IRootScopeService)
{
  return new TInterceptor($q, $rootScope);
}
constructor(private $q:ng.IQService, private $rootScope:ng.IRootScopeService){}...}

服务在这里被调用:
  angular
    .module('t')
    .config(config);

  function config($httpProvider:ng.IHttpProvider)
  {
    $httpProvider.interceptors.push(TInterceptor.Factory);
  }

我的问题是,如何确保压缩代码时不依赖项受到覆盖?

最佳答案

注册工厂。 IE,

angular.module('myapp').factory('interceptorFactory', ['$q','$rootScope',TInterceptor.Factory]);

并在config块中提供工厂名称:
$httpProvider.interceptors.push('interceptorFactory');

或也提供数组(猜测它应该可以正常工作,因为它内部使用$injector.invoke而不是字符串)
 $httpProvider.interceptors.push(['$q','$rootScope', TInterceptor.Factory]);

您也忘记了在config块上的显式注释。
.config(['$httpProvider', config]);

10-06 07:30
查看更多