8

我使用以下升级/降级桥https://angular.io/docs/ts/latest/guide/upgrade.html在一个应用程序中并排放置Angular1Angular2 。

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

4

2 回答 2

7

所需要的只是:

@Injectable()    
class ExampleAngular2Service {
  constructor(@Inject('$rootScope') private _rootScope: IRootScopeService) {}
}

您不必升级任何东西,默认情况下它就在那里。见http://www.spaprogrammer.com/2017/03/inject-rootscope-in​​to-angular-2.html

使用现在推荐的在 Angular 6 Hybrid 上进行测试:

import { UpgradeModule } from '@angular/upgrade/static';

你也可以这样做$scope

@Inject('$scope') private $scope: IScope
于 2018-06-05T20:30:03.950 回答
3

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

$rootScope您必须通过以下方式升级:

upgradeAdapter.upgradeNg1Provider('$rootScope')

然后可以将其注入到 Angular2 服务中,如下所示:

@Injectable()    
class ExampleAngular2Service {
    constructor(@Inject('$rootScope') private _rootScope: any) {}
}
于 2016-09-22T15:39:52.003 回答