0
我正在開發一個混合ng1 ng2應用程序。該應用程序基於ng1,然後使用升級適配器降級ng2組件。向根角注入器注入角1角2混合應用程序
我想在所有ng2組件之間共享一個ng2提供程序(用於提取和存儲數據的服務)的單個實例,但這些組件不共享一個共同的ng2父組件,因此每個組件具有提供者的新實例。
有沒有一種方法,這個組件可以共享一個提供者的實例,而無需使用父級的ng2組件?
我正在開發一個混合ng1 ng2應用程序。該應用程序基於ng1,然後使用升級適配器降級ng2組件。向根角注入器注入角1角2混合應用程序
我想在所有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) {}
}