簡體   English   中英

Angular2 / ionic2-動態類實例化

[英]Angular2 / ionic2 - Dynamically class instanciation

我應付一個問題。 我想從其超類動態實例化一個類。 基本上,我有一個AbstractClass和幾個從該類繼承的類。

這是Typescript游樂場中的一個工作示例:

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應用程序中工作。

錯誤是未定義window [class_name]。 我試圖放入硬編碼的字符串,但它似乎不能以相同的方式工作。

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

謝謝 !

朱利安

您可以嘗試以下方法:

  • 創建父類作為提供者
  • 將此課程注入子課程
  • 在子類構造函數中實例化父類

您還需要將這些類導入並注入到app.module.ts中,以便它們在您的應用程序中可用。

http://mcgivery.com/understanding-ionic-2-imports/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM