Как я могу создать и использовать модуль класса на провайдерах Ionic2?
Я хочу расширить свой поставщик с модулями, чтобы использовать как classA.moduleClassB
но я не могу и не знаю, как импортировать объект класса модуля на мою страницу контроллера в качестве поставщика
Пример (как я хочу):
провайдеры / мой-провайдер / My-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 ответ
Вы можете вводить только те классы, которые помечены как Injectable. Пометьте свой classB как Injectable, а затем внедрите его в конструктор, как вы это сделали.
Чтобы использовать правильное внедрение зависимостей, измените модификатор доступа на private. Затем вы можете получить доступ к вашему classB в classA.
любимый Я хочу расширить свой провайдер с помощью модулей, чтобы использовать как classA.moduleClassB, но я не могу, и я не знаю, как импортировать объект класса модуля на мою страницу контроллера в качестве провайдера
Должно выглядеть примерно так:
провайдеры / мой-провайдер / My-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) {
}
}