加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular – 模块导入的意外值’undefined’

发布时间:2020-12-17 17:51:09 所属栏目:安全 来源:网络整理
导读:我以为我理解ngModule是如何工作的,但显然不是.我有3个模块:AppModule,AmpedFormsModule和AmpedCommonModule(下面是这个)问题是,当我尝试将AmpedFormsModule导入AmpedCommonModule时,它给了我这个错误,控制台日志给我未定义: Unexpected value ‘undefined
我以为我理解ngModule是如何工作的,但显然不是.我有3个模块:AppModule,AmpedFormsModule和AmpedCommonModule(下面是这个)问题是,当我尝试将AmpedFormsModule导入AmpedCommonModule时,它给了我这个错误,控制台日志给我未定义:

Unexpected value ‘undefined’ imported by the module ‘AmpedCommonModule’

我玩过进口但尝试了很多但没有取得任何成功.我还尝试创建另一个模块,并且尝试导入Common或Form模块的模块也存在同样的问题.正确方向的任何一点都非常感谢!

app.module.ts

import { NgModule }       from '@angular/core';
import { HttpModule }     from '@angular/http';
import { BrowserModule }  from '@angular/platform-browser';
import { RouterModule }   from '@angular/router';

import { ModalModule } from 'angular2-modal';
import { BootstrapModalModule } from 'angular2-modal/plugins/bootstrap';

import { AppComponent }  from './app.component';
import { HomepageComponent }  from './app.homepage';

import { AmpedFormsModule }       from './amped/forms/amped.forms.module';
import { AmpedCommonModule }      from './amped/common/amped.common.module';


import { routes,appRoutingProviders }  from './app.routes';

import
  { LocationStrategy,HashLocationStrategy} from '@angular/common';


@NgModule({
  imports:      [
    BrowserModule,AmpedFormsModule,AmpedCommonModule,HttpModule,ModalModule.forRoot(),BootstrapModalModule,routes
  ],declarations: [ AppComponent,HomepageComponent ],providers : [appRoutingProviders,{provide: LocationStrategy,useClass: HashLocationStrategy}],bootstrap:    [ AppComponent ]
})
export class AppModule { }

./amped/forms/amped.forms.module

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

// ... imports

import { AmpedCommonModule }  from '../common/amped.common.module';


@NgModule({
  imports         : [ CommonModule,FormsModule,ReactiveFormsModule,AmpedCommonModule ],declarations    : [ ... declarations ],exports         : [ ... exports ],providers       : [ ... services ],entryComponents : [  ]
})
export class AmpedFormsModule {}

./amped/common/amped.common.module

import { NgModule }       from '@angular/core';
import { BrowserModule }  from '@angular/platform-browser';
import { FormsModule }    from '@angular/forms';

// ... imports

import { AmpedFormsModule } from '../forms/amped.forms.module';

console.log('CRUUD',AmpedFormsModule);

@NgModule({
  imports       : [BrowserModule,AmpedFormsModule],providers       : [  ],})
export class AmpedCommonModule { }

app.routes.ts

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

import { HomepageComponent }  from './app.homepage';

import { crudRoutes } from './amped/forms/amped.forms.routes';

export const appRoutes: Routes = [
  ...crudRoutes,{ path: '',component: HomepageComponent,pathMatch: 'full' },];

export const appRoutingProviders: any[] = [];

export const routes: ModuleWithProviders = RouterModule.forRoot(appRoutes);

./amped/forms/amped.forms.routes

export const crudRoutes: Routes = [
  { path: 'edit/:model',component: AmpedCrudTableComponent },{ path: 'edit/:model/:id',component: AmpedCrudFormComponent }
];

解决方法

很难说确切的问题,但建议很少,

1)在AppCommonModule中将BroswerModule更改为CommonModule.Keep记住BroswerModule只能由AppModule或RootModule导入.

@NgModule({
  imports       : [CommonModule,FormsModule],...
})

2)不确定,但似乎你通过将模块导入到彼此中来创建循环依赖,但是尽管如此表示不确定.

@NgModule({
  imports       : [FormsModule,//<<< here
})

@NgModule({
  imports       : [ HttpModule,//<<< here
  ...
})

3)如果AmpedFormsModule和AmpedCommonModule是惰性模块,请不要忘记在类关键字之前放置default关键字

eg. export default class AmpedFormsModule {}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读