Angularjs typescript中的角度服务,具有依赖项注入和缩小功能
我现在正试图说服安格拉斯。我目前正在寻找服务,我也在使用typescript作为代码 现在,从web上的示例中,我看到人们在typescript中使用下面这样的服务Angularjs typescript中的角度服务,具有依赖项注入和缩小功能,angularjs,typescript,minify,Angularjs,Typescript,Minify,我现在正试图说服安格拉斯。我目前正在寻找服务,我也在使用typescript作为代码 现在,从web上的示例中,我看到人们在typescript中使用下面这样的服务 class Service { constructor( private $http: ng.IHttpService ) { } public MyMethod() { this.$http.get( "/" ) .success( null )
class Service
{
constructor( private $http: ng.IHttpService )
{
}
public MyMethod()
{
this.$http.get( "/" )
.success( null )
.error( null );
}
}
现在,如果将其缩小,我将从构造函数中丢失$http
,angular需要变量名。所以我四处查看,发现我可以使用$inject代替构造函数,但这也会遇到同样的缩小问题
人们如何在打字脚本环境中处理缩微和棱角?我正在努力寻找一些关于如何处理这一问题的可靠文件。在我看来,在现代api中出现这些问题似乎很奇怪,因此我肯定是在某些地方遗漏了什么。仅使用
$inject
语法。e、 g:
class Service
{
static $inject = ['$http'];
constructor( private $http: ng.IHttpService )
{
}
public MyMethod()
{
this.$http.get( "/" )
.success( null )
.error( null );
}
}
PS:我做了一个关于这个主题的详细视频:目前官方的TypeScript编译器仍然没有发出可以在运行时用于DI系统的接口元数据。有一个关于发射器可扩展性的问题。
同时,我创建了一个AngularJS 1.3应用程序的示例项目(以及发出接口元数据的定制版本的TS编译器),该应用程序提供了修饰符来在应用程序模块中注册组件,并在运行时使用类元数据注入依赖项。您可以看一看。但是这样,每个
服务
实例都有自己的$http
引用。在普通JavaScript中,angular.factory
方法通常用于访问闭包中的此类依赖项。您建议在Typescript中实现这一点的最佳实践是什么?服务是单例的。只有一个instanceJavascript不知道类(或单例),因此AngularJS也不知道。服务可以是任何东西。多年来,我一直在提供可实例化的“类”作为服务。是的,但AngularJS将进行实例化,并在任何需要的地方注入相同的实例。您可以在uglifyid之前使用gulp的“ngAnnotate”模块,因此它将防止AngularJS中的依赖关系丢失。例如:gulp.src(path.ts).pipe(ts(ts.createProject('tsconfig.json')).pipe(concat('app.min.js')).pipe(ngAnnotate({remove:true,add:true,single_quotes:true})).pipe(uglify()).pipe(gulp.dest('www/js/'))