我有一个用 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]);