1

我已经降级了许多基于 Angular[Ng2] 的组件并在 AngularJS 应用程序中使用它们,所以理想情况下,像下面这样的语句可以完美地工作 -

angular.module('com.myservicemodule').service("overviewService", upgradeAdapter.downgradeNg2Provider(OverviewComponent));

这里的 OverviewComponent 是一个 Angular[NG2] 组件,我已将其降级并添加到我的 AngularJS 模块“com.myservicemodule”中。因此,最终的 AngularJs 引导应用程序对这些依赖项执行如下运行时执行-

var myApp = angular.module('myApp',['com.myservicemodule']) .run('$rootScope', '$q','$window','$location','OverviewComponent', function($q, $window,$location,OverviewComponent){// Some app code});

但是现在我有一个混合应用程序,它使用 x 个依赖项进行引导,其中一些依赖项是 Angular[NG2] 组件的降级版本。

并开始出现 ng2.injector 问题,就好像这些组件没有按时为 angularjs 降级一样。

我尝试了使用降级 Angular[Ng2] 组件的最新方法,例如-

import {UpgradeModule} from '@angular/upgrade/static';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
export const upgradeAdapter = platformBrowserDynamic().bootstrapModule(AppModule).then(platformRef => {
  return platformRef.injector.get(UpgradeModule);  
});

然后将 Angular[NG2] 组件降级为如下指令 -

downgradeComponent({component: OverviewComponent}) as angular.IDirectiveFactory

但是使用它似乎我只在 angularJs 1.X 中得到指令。那么有人知道如何获得服务,控制器同行吗?

4

0 回答 0