我已经降级了许多基于 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 中得到指令。那么有人知道如何获得服务,控制器同行吗?