Angular1 <-> Angular2 Bridge 访问 $rootScope
Angular1 <-> Angular2 Bridge accessing $rootScope
我使用下面的 upgrade/downgrade 桥 https://angular.io/docs/ts/latest/guide/upgrade.html 将 Angular1 和 Angular2 并排放在一起申请。
我的问题是是否有可能从 Angular2 服务访问 Angular1 $rootScope
。明确地说,我不是在问 $rootScope
在Angular2 中的等价物是什么。
所以我会回答我自己的问题。
您必须按以下方式升级 $rootScope
:
upgradeAdapter.upgradeNg1Provider('$rootScope')
然后可以像下面这样注入到Angular2服务中:
@Injectable()
class ExampleAngular2Service {
constructor(@Inject('$rootScope') private _rootScope: any) {}
}
只需要:
@Injectable()
class ExampleAngular2Service {
constructor(@Inject('$rootScope') private _rootScope: IRootScopeService) {}
}
您无需升级任何东西,它默认存在。参见 http://www.spaprogrammer.com/2017/03/inject-rootscope-into-angular-2.html
使用现在 recommended:
在 Angular 6 Hybrid 上测试
import { UpgradeModule } from '@angular/upgrade/static';
您也可以使用 $scope
@Inject('$scope') private $scope: IScope
我使用下面的 upgrade/downgrade 桥 https://angular.io/docs/ts/latest/guide/upgrade.html 将 Angular1 和 Angular2 并排放在一起申请。
我的问题是是否有可能从 Angular2 服务访问 Angular1 $rootScope
。明确地说,我不是在问 $rootScope
在Angular2 中的等价物是什么。
所以我会回答我自己的问题。
您必须按以下方式升级 $rootScope
:
upgradeAdapter.upgradeNg1Provider('$rootScope')
然后可以像下面这样注入到Angular2服务中:
@Injectable()
class ExampleAngular2Service {
constructor(@Inject('$rootScope') private _rootScope: any) {}
}
只需要:
@Injectable()
class ExampleAngular2Service {
constructor(@Inject('$rootScope') private _rootScope: IRootScopeService) {}
}
您无需升级任何东西,它默认存在。参见 http://www.spaprogrammer.com/2017/03/inject-rootscope-into-angular-2.html
使用现在 recommended:
在 Angular 6 Hybrid 上测试import { UpgradeModule } from '@angular/upgrade/static';
您也可以使用 $scope
@Inject('$scope') private $scope: IScope