基本クラスからプロパティを継承するIcon
コンポーネントを構築しようとしています。ただし、Icon
がインスタンス化されると、super
のプロパティは存在せず、__proto__
プロパティは設定されません。クラス継承が機能しません
私は何か非常に明白なものを欠いているように感じる。私はコードの非常に単純なcodepenバージョンを実行し、期待どおりに動作します:CodePen Example
しかし、それを角2のコンテキストに持っていくと、継承されたプロパティは常に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}`;
}
}
私は念のためにあまりにもngOnInit
にしてthis.baseImagePath += '/icons/'
ラインを移動しようとした - それは常に未定義です。
私が見逃していることについての洞察は非常に高く評価されます。
プランナーを作ることはできますか? –
これはなぜうまくいかないのか分かりません。 '@Input()....'や '@Component(...)'を継承することはサポートされていませんが、普通のTSクラスの継承は問題なく動作します。 –
私が推測しなければならないのは、 '../baseComponent';からの 'import {BaseComponent}のインポートは' ./baseComponent 'の 'import {BaseComponent}'でなければなりません。この[plunker](http://plnkr.co/edit/utCvRzeOAgJK7L6GL6xY?p=preview)で期待どおりに動作します – Abdulrahman