从1.6.6升级到6时出现的$Injector错误

10

我使用Webpack 4将Angular.Js 1.6.6升级到Angular 6:

    import 'core-js/es7/reflect';
    import 'zone.js';
    import 'reflect-metadata';
    import 'rxjs';
    import { NgModule } from '@angular/core';
    import { FormsModule } from '@angular/forms';
    import { Routes, RouterModule } from '@angular/router';
    import { BrowserModule } from '@angular/platform-browser';
    import { UpgradeModule, downgradeComponent, downgradeInjectable, setAngularJSGlobal } from '@angular/upgrade/static';
    import { module } from './app.module.ajs';
    import './config/routes';
    import AppComponent from './components/app/app';
    import Application from './directives/application/application';
    import { platformBrowserDynamic } from "@angular/platform-browser-dynamic";
    console.log('NgModule');
    const appRoutes: Routes = [
    ];
    @NgModule({
      declarations: [AppComponent, Application],
      entryComponents: [AppComponent],
      imports: [
        BrowserModule,
        FormsModule,
        RouterModule.forRoot(appRoutes),
        UpgradeModule
      ]
    })
    class AppModule {
      constructor(public upgrade: UpgradeModule) {
        console.log('AppModule constructor');
      }
      ngDoBootstrap() {
        console.log('AppModule ngDoBootstrap');
      }
    }
    console.log('setAngularJSGlobal ...');
    setAngularJSGlobal(window['angular']);
    console.log('setAngularJSGlobal!!!');
import main = require('./main'); console.log('在启动bootstrapModule之前模块名称: ', module.name); platformBrowserDynamic().bootstrapModule(AppModule).then(platformRef => { console.log('混合模式:Angular + Angular.Js'); module.directive('appRoot', downgradeComponent({ component: AppComponent })); const upgrade = platformRef.injector.get(UpgradeModule) as UpgradeModule; console.log('启动bootstrapModule: ', module.name); main['launchAngular'](); upgrade.bootstrap(document.body, [module.name], { strictDi: true }); });

我创建了自定义别名,将正确路径添加到tsconfig中,Webpack已经可以编译并生成输出文件。但是当在浏览器中启动应用程序时,控制台会弹出错误信息:ngRoute缺失或ng模块组件不正确

哪些内容没有正确处理,并如何解决此错误?

1个回答

4

修复了一些Webpack的别名。使用Axios替代Angular-Resource,使用UI-Router/Angular-Hybrid替代Angular-Route,重构了一些控制器为组件/指令和服务,摆脱了$rootScope,神奇的事情发生了:升级开始运行。


1
有没有相关文档可以解决这个问题?我也遇到了同样的问题,请帮帮我。 - Venkat smart
1
@Venkatsmart,请查看以下示例文档:https://angular.io/api/upgrade/static/downgradeModule https://angular.io/api/upgrade/static/UpgradeModule https://webpack.js.org/configuration/resolve/ - Droid Kree

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接