У меня есть проект, в котором у меня есть набор компонентов, которые расширяют друг друга и наследуют свойства от потомка к родителю ([базовый класс] Сертификация -> [абстрактный класс] Приложение -> [нижняя часть наследования] Individual_Types). Это все работает нормально, но нижний компонент содержит несколько вложенных компонентов, и я хотел бы поделиться некоторыми из этих унаследованных свойств с вложенными компонентами.
Если я пытаюсь использовать одну из этих унаследованных переменных в привязке свойства, я получаю сообщение об ошибке «Ошибка TypeError: Невозможно прочитать свойство Id» из неопределенного ». но если я вместо этого установлю переменную-член в компоненте Individual_type и установлю для нее наследуемое свойство в конструкторе, тогда я могу использовать эту переменную-член в привязке без ошибок.
В компоненте Приложения:
export abstract class ApplicationComponent extends CertificationComponent implements OnInit {
protected BaseAppType: AppType;
protected BaseAppId: string;
// Injected Services
protected AppRouter: Router;
protected AppServ: ApplicationService;
constructor(private AppInject: Injector,
private AppCertId: string,
private AppTypeId: string,
private AppSumId: number) {
super(AppInject, AppCertId);
this.AppRouter = AppInject.get(Router);
this.AppServ = AppInject.get(ApplicationService);
// Default AppType - BaseAppType actually set in ngOnInit
this.BaseAppType = new AppType();
}
Пример наследования:
export class NewBcabaComponent extends ApplicationComponent implements OnInit {
private ParentAppType: AppType;
public constructor(NewInject: Injector) {
super(NewInject, '2', '1', 11);
this.ParentAppType = this.BaseAppType;
}
Пример шаблона с вложенным компонентом
Это работает:
<div class="open-card-BG" *ngIf="CurrentPage == 1">
<instructions [InstAppType]="ParentAppType"></instructions>
</div>
Это не:
<div class="open-card-BG" *ngIf="CurrentPage == 1">
<instructions [InstAppType]="BaseAppType"></instructions>
</div>