【问题标题】:Uncaught (in promise): Error: No NgModule metadata found for '[object Object]'未捕获(承诺中):错误:未找到“[object Object]”的 NgModule 元数据
【发布时间】:2016-11-26 16:08:00
【问题描述】:

src/+login/index.ts

import { CommonModule } from '@angular/common';
import { NgModule }      from '@angular/core';
import { FormsModule }   from '@angular/forms';
import { HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';

import { LoginComponent } from './login.component';

export const routes=[
  { path:'',component:LoginComponent }
];
@NgModule({
  imports: [
    CommonModule,
    HttpModule,
    FormsModule,
    RouterModule.forChild(routes)
  ],
  declarations: [
    LoginComponent
  ],
})
export default class Login {
  static routes = routes;
}

src/app.routing.ts

import { Routes, RouterModule } from '@angular/router';

import { HomeComponent } from './home';

export const appRoutes: Routes = [
    { path:'',component:HomeComponent },
    { path:'login',loadChildren: ()=>System.import("./+login")}
];

错误:

异常:未捕获(承诺中):错误:未找到 NgModule 元数据 对于“[对象对象]”。 ac_vendor

这个问题困扰了我很久,请大家帮帮我

【问题讨论】:

  • 尝试删除default
  • 错误信息是否有更多细节?
  • loadChildren()有关系吗?
  • 是的,我正在尝试使用延迟加载
  • 所以如果你删除{ path:'login',loadChildren: ()=>System.import("./+login")},错误就会消失?

标签: javascript angular metadata ng-modules


【解决方案1】:

从 Angular 2.0.x 升级到 Angular 4.0.x 后我遇到了同样的问题 问题在于路由的语法。您需要指定负责显示子页面的 NgModule。

旧语法: { path: 'jobs', loadChildren: () => System.import('./jobs/jobs.module') }

新语法: { path: 'jobs', loadChildren: 'app/pages/jobs/jobs.module#JobsModule' }

(注意末尾的 #JobsModule

【讨论】:

    猜你喜欢
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 2019-03-08
    • 2019-07-25
    • 1970-01-01
    • 2017-05-22
    相关资源
    最近更新 更多