当前位置: 首页 > 知识库问答 >
问题:

$Injector在从1.6.6升级到6时出错

诸葛文博
2023-03-14

我使用WebPack4将Angular从Angular.js1.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('Before bootstrapModule module.name: ', module.name);
    platformBrowserDynamic().bootstrapModule(AppModule).then(platformRef => {
      console.log('Hybrid mode: 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构建通过并产生输出,但当应用程序在浏览器中启动时,控制台中弹出错误:n格鲁特丢失或不正确的ng模块组件没有正确执行什么操作&如何修复此错误?

共有1个答案

欧盛
2023-03-14

修正了一些Webpack别名。替换:Angular-Resource替换为Axios,Angular-Route替换为UI-Router/Angular-Hybrid,重构了耦合控制器到组件/指令和服务,摆脱了$rootscope&神奇的事情发生了:升级开始工作了。

 类似资料:
  • 当我将我的keycloak版本从3.2.1升级到4.5时,我遇到了以下异常。如果我从3.2.1转到keycloak 4.2.1我就不明白了。看起来像是keycloak 4.5特有的东西。

  • 在我的环境中,我需要将mongodb从3.2升级到3.6。对于该进程,我首先按照建议从3.2迁移到3.4。在成功迁移到3.4后,我开始迁移到3.6我无法启动Mongod。当检查日志文件时,我发现错误如下:重要:升级问题:数据文件需要完全升级到3.4版本,然后才尝试升级到3.6;有关更多细节,请参见http://dochub.mongodb.org/core/3.6-upgrade-fcv。 我的妈

  • 我一直在使用Android Studio(Beta)0.8.6来完成我当前的项目。最近,我下载了Android Studio(RC4)的最新版本。安装RC4版本后,我从“现有的Android Studio项目”加载了我的项目。在打开基于0.8.6的项目时,我得到的错误是“该项目正在使用不受支持的Android Gradle插件(0.12.2)版本。推荐的版本是1.0.0-RC4。”然后我点击“修复

  • 我刚刚将我的Android Studio从1.0 RC 2升级到1.0.1。 之后,我被提示将gradle插件从0.14.0更新到1.0.0。 一旦我这么做了,Gradle构建就失败了- 还有其他人面临过类似的问题吗?非常感谢! 我的身材。格拉德尔-

  • Tomcat开始侦听端口,并且应用程序也得到部署,但是当我访问URL时,我得到连接拒绝错误。BigIP无法识别服务器上Tomcat8打开的端口是否有问题? 虽然当我返回到Tomcat6(启动和停止它),然后再次尝试使用Tomcat8,它有时开始接收连接,这很奇怪,我无法找到原因。会有什么问题?

  • 为了帮助大伙儿升级,我们为现在的Apache用户提供了一份重要信息的文档说明。这些只是一些简要说明,你可以从新特性文档或src/CHANGES文件中得到更多信息。 这篇文档仅仅描述了从版本 2.0 到 2.2 的变化,如果你是从1.3版进行升级的,请查考从1.3升级到2.0文档。 编译时配置的改变 编译过程与2.0版本非常相似,你曾经使用过的configure命令行(在安装目录下的build/co