如何在Ionic2提供程序上创建和使用模块类?

时间:2017-03-08 13:02:17

标签: javascript angular typescript ionic2 ionic2-providers

我想扩展我的提供程序使用类似classA.moduleClassB的模块,但我不能,我不知道如何将模块类对象导入我的控制器页面作为提供程序

示例(我想要):

提供商/我的提供商/我的-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 个答案:

答案 0 :(得分:1)

您只能注入标记为Injectable的类。将您的classB标记为Injectable,然后将其注入构造函数中。

为了使用正确的依赖注入,请将访问修饰符更改为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) {
    }

}