我想扩展我的提供程序使用类似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) {
}
}
答案 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) {
}
}