11

私は現在、Angularjsに頭を悩ませようとしています。私は現在、コードにタイプスクリプトも使用しているサービスを見ています。

ウェブ上のサンプルから、人々がタイプスクリプトのサービスに以下のようなものを使用していることがわかりました。

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

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

これが縮小$httpされると、コンストラクターから失われ、角度には変数名が必要になります。そのため、確認したところ、コンストラクターの代わりに $inject を使用できることがわかりましたが、これも同じ縮小の問題が発生します。

typescript のコンテキストで縮小化と角度をどのように扱っていますか? これをどのように処理する必要があるかについて、いくつかの確かなドキュメントを見つけるのに苦労しています。私には、これらの問題が最新の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 に答える