Ich versuche, eine Icon
Komponente zu erstellen, die Eigenschaften von einer Basisklasse erbt. Wenn jedoch eine Icon
instanziiert wird, keine der Eigenschaften von super
vorhanden ist, wird die __proto__
Eigenschaft nicht festgelegt.Klassenvererbung funktioniert nicht
Ich fühle mich, als ob ich etwas sehr offensichtlich vermisse. Ich habe eine sehr einfache Codepen-Version des Codes ausgeführt und es funktioniert wie erwartet: CodePen Example
Allerdings bringt es in den Kontext von Angular 2, die geerbte Eigenschaft ist immer undefined
.
BaseComponent.ts
export abstract class BaseComponent {
constructor() {
this.baseImagePath = '/Assets/Images';
}
baseImagePath: string;
}
Icon.ts
import {Component, Input} from 'angular2/core';
import {BaseComponent} from '../baseComponent';
@Component({
selector: 'lib-icon',
templateUrl: 'app/components/icon/icon.tmpl.html'
})
export class Icon extends BaseComponent {
@Input() icon: string;
constructor() {
super();
this.baseImagePath += '/icons/';
}
getSrc() {
return `${this.baseImagePath}${this.icon}`;
}
}
Ich habe versucht, in zu ngOnInit
auch nur für den Fall der this.baseImagePath += '/icons/'
Linie bewegt - es ist immer undefiniert.
Jeder Einblick in, was ich vermisse, würde sehr geschätzt werden.
Können Sie einen Plünderer machen? –
Ich sehe nicht, warum das nicht funktionieren würde. Das Erben von '@Input() ....' und '@Component (...)' stuff wird nicht unterstützt, aber die einfache TS-Klassenvererbung sollte ohne Probleme funktionieren. –
Wenn ich raten musste, sollte Ihr Import 'import {BaseComponent} von '../ baseComponent';' wahrscheinlich 'import {BaseComponent} von './baseComponent';' sein. Es funktioniert wie erwartet in diesem [bottker] (http://plnkr.co/edit/utCvRzeOAgJK7L6GL6xY?p=preview) – Abdulrahman