2016-03-23 64 views
0

我有下一個解決方案,但angular2的最佳做法是什麼?如何在Angular2中將服務注入類的實例(不是服務)?

... 

class MultitonObject { 
    _http: Http; 

    constructor (appInjector: Injector) { 
     this._http = appInjector.get(Http); 
    } 
} 

var app = bootstrap(AppComponent, [HTTP_PROVIDERS, ...]); 

app.then(componentRef => { 
    var new_instance = new MultitonObject(componentRef.injector); 
}); 
+0

有沒有理由不能或不想讓'MultitonObject'服務? –

+0

我什至不明白你想要達到什麼目的? –

+0

我的例子基於Angular2教程。想象一下,我們想在應用程序的不同部分創建英雄。有時我們想用英雄實例注入Http來保存這個英雄。 var hero = new Hero(name =「Windstorm」); hero.setName(「Windstorm 2」); hero.save(); –

回答

0

Angulars依賴注入只能注入到自己創建的類中。如果您使用new MyClass()自己創建實例,則Angular無能爲力。

您的問題中的代碼對此用例來說很好。