2017-03-08 15 views
0

私はclassA.moduleClassBのように使用するモジュールと私のプロバイダを拡張したいが、私はできませんし、私は(私が好きな)プロバイダIonic2プロバイダでモジュールクラスを作成して使用する方法は?

例として、私のコントローラのページへのモジュールクラスオブジェクトをインポートする方法がわからない:

プロバイダ/私のプロバイダ/私の-provider.ts

export class MyParentClass { 
    //... 
} 
export module a { 
    class MyChildClass { 
     //... 
    } 
} 

ページ/ホーム/ home.ts

import { Component } from '@angular/core'; 
import { MyParentClass, MyChildClass } from '../../providers/my-provider' 
@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html', 
    providers: [ 
     MyParentClass, 
     MyChildClass 
    ] 
}); 
export class homePage { 
    constructor(public parentClass: MyParentClass, public childClass: MyChildClass) { 
    } 

} 

答えて

1

注入可能とマークされたクラスのみを注入できます。あなたのクラスBを注入可能なものとしてマークし、それをコンストラクタに注入します。

適切な依存性注入を使用するには、アクセス修飾子をprivateに変更します。あなたはclassAのclassBにアクセスできます。

好きな 私はclassA.moduleClassBのように使用するモジュールと私のプロバイダを拡張したいが、私はできないと私はプロバイダとしての私のコントローラのページへのモジュールクラスオブジェクトをインポートする方法がわからない

ようになるはずですこの:

プロバイダ/私のプロバイダ/私の-provider.ts

import {Injectable} from "@angular/core"; 

@Injectable() 
export class MyParentClass { 
    //... 
} 
export module a { 
    @Injectable() 
    export class MyChildClass { 
     //... 
    } 
} 

ページ/ホーム/ home.ts

import { Component } from '@angular/core'; 
import { MyParentClass, MyChildClass } from '../../providers/my-provider' 
@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html', 
    providers: [ 
     MyParentClass, 
     MyChildClass 
    ] 
}); 
export class homePage { 
    constructor(private parentClass: MyParentClass, private childClass: MyChildClass) { 
    } 

} 
+0

あなたの回答を編集して簡単な例を書いてください。ありがとう! –

+0

例を使って投稿を編集しました:) –

+0

ありがとうございました!投票してください! –

関連する問題