I use the following upgrade/downgrade bridge https://angular.io/docs/ts/latest/guide/upgrade.html to have Angular1 and Angular2 side by side in one application.
My question is if there is any possiblity to access Angular1 $rootScope
from the Angular2 service. To be clear I am not asking about what is the equivalent for $rootScope
in Angular2.
All that's needed is:
@Injectable()
class ExampleAngular2Service {
constructor(@Inject('$rootScope') private _rootScope: IRootScopeService) {}
}
You don't have to upgrade anything, it's there by default. See http://www.spaprogrammer.com/2017/03/inject-rootscope-into-angular-2.html
Tested on Angular 6 Hybrid using the now recommended:
import { UpgradeModule } from '@angular/upgrade/static';
You can also do this with $scope
@Inject('$scope') private $scope: IScope
So I will answer my own question.
You have to upgrade the $rootScope
in the following manner:
upgradeAdapter.upgradeNg1Provider('$rootScope')
Then it can be injected in the Angular2 service like follows:
@Injectable()
class ExampleAngular2Service {
constructor(@Inject('$rootScope') private _rootScope: any) {}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With