2016-04-13 7 views
2

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.

+0

Können Sie einen Plünderer machen? –

+0

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. –

+0

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

Antwort

0

Entschuldigung für die Reise durch den Kaninchenbau hier. Eine halbe Stunde, in der der Code durchlaufen wurde, wurde BaseComponent.ts aus irgendeinem Grund nicht kompiliert. Führen Sie TSC ein paar Mal und alles begann plötzlich zu arbeiten.

Vielen Dank für Ihre Hilfe!

Verwandte Themen