簡體   English   中英

角度從1.6.6升級到6的$ Injector錯誤

[英]$Injector Error on Angular Upgrade from 1.6.6 to 6

我使用Webpack 4從Angular.Js 1.6.6到Angular 6進行了Angular升級:

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構建傳遞和產生輸出,但是當應用程序在瀏覽器中啟動時,控制台中出現錯誤彈出: ngRoute缺失或模塊組件不正確什么未正確完成以及如何解決此錯誤?

修復了一些Webpack別名。 替換:帶Axios的Angular-Resource,帶UI-Router / Angular-Hybrid的Angular-Route,重構的幾個控制器到組件/指令和服務,擺脫$ rootScope&Magic發生:升級開始起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM