2016-09-23 75 views
0

我應對了一個問題。我想從它的超類動態實例化一個類。 基本上,我有一個AbstractClass和幾個繼承自這個類的類。Angular2/ionic2 - 動態類instanciation

這裏是打字稿遊樂場的工作例如:

class AbstractGreeter { 
    static get(the_msg) { 
     let class_name = (<any>this).name; 
     // ... do other things here ! 
     var instance = Object.create(window[class_name].prototype); 
     instance.constructor.apply(instance, [the_msg]); 
     return instance; 
    } 
} 
class Greeter extends AbstractGreeter { 
    greeting: string; 
    constructor(message: string) { 
     super(); 
     this.greeting = message; 
    } 
    greet() { 
     return "Hello, " + this.greeting; 
    } 
} 

let second_greeter = Greeter.get("it's me"); 

let button = document.createElement('button'); 
button.textContent = "Say Hello"; 
button.onclick = function() { 
    alert(second_greeter.greet()); 
} 

document.body.appendChild(button); 

此代碼以及在操場上,但我不能讓它在我ionic2/angular2應用程序。

錯誤在於窗口[class_name]未定義。我試圖把硬編碼的字符串,但它似乎不以同樣的方式工作。

有沒有辦法解決這個問題?

謝謝!

朱利安

回答