2016-05-04 82 views
0

我正在開發一個混合ng1 ng2應用程序。該應用程序基於ng1,然後使用升級適配器降級ng2組件。向根角注入器注入角1角2混合應用程序

我想在所有ng2組件之間共享一個ng2提供程序(用於提取和存儲數據的服務)的單個實例,但這些組件不共享一個共同的ng2父組件,因此每個組件具有提供者的新實例。

有沒有一種方法,這個組件可以共享一個提供者的實例,而無需使用父級的ng2組件?

回答

0

編輯答案已過時,因爲rc5發佈,您應該使用NgModule。

只要使用addProvider方法UpgradeAdapter

像這樣:

import { UpgradeAdapter } from '@angular/upgrade'; 
import { YourService} from "./YourService"; 

const upgradeAdapter = new UpgradeAdapter(); 
upgradeAdapter.addProvider(YourService); 

YourService後,加入到根注射器和你不需要在你的其他組件或服務,將其指定:

@Component({ 
    selector: 'cmp-selector', 
    template: '...', 
    // Don't specify YourService again or you will receive another instance 
    // providers: [YourService] 
}) 
export class SomeComponent { 
    constructor(private service: YourService) {} 
}