gpt4 book ai didi

angularjs - 在 Typescript 中将依赖项注入(inject)静态工厂

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:25 25 4
gpt4 key购买 nike

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

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

最佳答案

注册工厂。即,

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

并在配置 block 中提供工厂名称:

$httpProvider.interceptors.push('interceptorFactory');

或者也提供数组(猜测它应该工作得和它在内部使用 $injector.invoke不是字符串)

 $httpProvider.interceptors.push(['$q','$rootScope', TInterceptor.Factory]);

你也忘记了在 config block 上的显式注释。

.config(['$httpProvider', config]);

关于angularjs - 在 Typescript 中将依赖项注入(inject)静态工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30628529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com