11

我现在正试图让我的头转向 angularjs。我目前正在寻找服务,我也在使用 typescript 来编写代码。

现在,从网络上的示例中,我看到人们在 typescript 中使用类似下面的东西来提供服务。

class Service
{
    constructor( private $http: ng.IHttpService )
    {
    }

    public MyMethod()
    {
        this.$http.get( "/" )
            .success( null )
            .error( null );
    }
}

现在,如果将其缩小,我将从$http构造函数中丢失,并且 angular 需要变量名。所以我检查了一下,发现我可以使用 $inject 而不是构造函数,但这也会遇到同样的缩小问题。

人们如何在打字稿上下文中处理缩小和角度?我正在努力寻找一些关于如何处理的可靠文档。对我来说,在现代 api 中出现这些问题似乎很奇怪,所以我一定在某处遗漏了一些东西。

4

2 回答 2

16

只是使用$inject语法。例如:

class Service
{
    static $inject = ['$http'];    
    constructor( private $http: ng.IHttpService )
    {
    }

    public MyMethod()
    {
        this.$http.get( "/" )
            .success( null )
            .error( null );
    }
}

PS:我做了一个关于这个主题的详细视频:http ://www.youtube.com/watch?v=WdtVn_8K17E&hd=1

于 2013-10-09T12:31:14.123 回答
0

目前官方的 TypeScript 编译器仍然不会发出可在运行时用于 DI 系统的接口元数据。这里有一个关于 Emitter 可扩展性的问题。与此同时,我创建了一个 AngularJS 1.3 应用程序的示例项目(以及发出接口元数据的 TS 编译器的定制版本),该应用程序提供装饰器以在应用程序模块中注册组件并在运行时使用类元数据注入依赖项。你可以在这里看看。

于 2015-08-08T18:06:51.273 回答