2017-09-08 8 views
0

私はangular2(draw2d-wrapper)にdraw2dを使用しています。私はそれらからクラスを拡張しようとしています。私のコードでAngular2(typescript)のJavaScript NAMEプロパティをオーバーライドします。

export class Table extends (draw2d.shape.layout.VerticalLayout as { new(): any }) { 
    static NAME: "Table"; 
    /*Some code*/ 
} 

私はt.NAMEプロパティ var t = new Table();

を行う際に "draw2d.shape.layout.VerticalLayout" として来ました。

このJavaScriptプロパティをangular2の文字コードで上書きすることはできますか?

答えて

0

テーブルインスタンスのプロパティにアクセスしようとしているので、実際には静的プロパティではありません。あなたの例の簡素化、この作品:私は部分的に問題を解決しdraw2d.shape.layout.VerticalLayout

+0

由来のために働くために同じことを期待

class VerticalLayout { NAME = "VerticalLayout"; } class Table extends VerticalLayout { NAME = "Table"; } new Table().NAME; // Table 

、今の問題は方法であること(draw2d.shapeのスーパークラスです。 layout.VerticalLayout)は、evalメソッドを使用してオブジェクトの新しいインスタンスを作成する 'var0 = eval(" new "+ element.type +"() ");'名前が "draw2d ....."のときエラーはありませんが、私のサブクラスでオーバーライドするメソッドは呼び出されません。 element.typeが "Table"の場合、このエラーメッセージが表示されます。 "" id ... rshalの図形タイプ 'Tabela'をdraw2d.io.json.Readerでインスタンス化できません。 –

関連する問題