Angular1 <-> Angular2 Bridge 访问 $rootScope

Angular1 <-> Angular2 Bridge accessing $rootScope

我使用下面的 upgrade/downgrade 桥 https://angular.io/docs/ts/latest/guide/upgrade.htmlAngular1Angular2 并排放在一起申请。

我的问题是是否有可能从 Angular2 服务访问 Angular1 $rootScope。明确地说,我不是在问 $rootScopeAngular2 中的等价物是什么。

所以我会回答我自己的问题。

您必须按以下方式升级 $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