簡體   English   中英

在角度1角度2混合應用程序中將提供程序注入到根注入器

[英]Inject a provider to root injector in angular 1 angular 2 hybrid app

我正在開發混合ng1 ng2應用。 該應用程序基於ng1,然后使用升級適配器降級ng2組件。

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

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

編輯答案已經過時,因為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) {}
}

暫無
暫無

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

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