代码之家  ›  专栏  ›  技术社区  ›  Stephane

传递模块导入语句

  •  1
  • Stephane  · 技术社区  · 6 年前

    在我的 Angular 6 申请,我有 app.module.ts 导入自定义模块的文件:

    import { AppGuiModule } from './app-gui.module';
    ...
    imports: [
      AppGuiModule,
    

    app-gui.module 文件导入窗体模块:

    import { FormsModule, ReactiveFormsModule } from '@angular/forms';
    ...
    imports: [
      FormsModule,
      ReactiveFormsModule,
    

    我想这就足够用 [(ngModel)]

    但可惜的是,事实并非如此,这给了我一个错误:

    Can't bind to 'ngModel' since it isn't a known property of 'input'. ("
      <div>
        <label>name:
          <input [ERROR ->][(ngModel)]="user.name" placeholder="name"/>
        </label>
      </div>
    "): ng:///AppModule/UserComponent.html@6:13
    

    应用模块ts 文件,应用程序是否加载良好:

    import { AppGuiModule } from './app-gui.module';
    import { FormsModule, ReactiveFormsModule } from '@angular/forms';
    ...
    imports: [
      FormsModule,
      ReactiveFormsModule,
      AppGuiModule,
    

    有没有办法实现一些过渡进口?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Stephane    6 年前

    我可以解决这个问题,确实像我希望的那样以一种过渡的方式来做。我缺少的是表单模块列在 exports AppGuiModule 模块。

    这个 AppGui模块

    import { NgModule } from '@angular/core';
    import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
    import { FormsModule, ReactiveFormsModule } from '@angular/forms';
    
    @NgModule({
      declarations: [
      ],
      imports: [
        BrowserAnimationsModule,
        FormsModule,
        ReactiveFormsModule,
      ],
      exports: [
        FormsModule,
        ReactiveFormsModule,
      ]
    })
    export class AppGuiModule { }
    

    这个 AppModule

    import { MaterialModule } from './material.module';
    
    @NgModule({
      imports: [
        AppGuiModule,
      ],
    })
    export class AppModule { }
    
        2
  •  1
  •   Rafael    6 年前

    角度模块不会从模板相关抽象(管道、组件、指令)的导入模块继承。 ngModel 是一个 因此,您需要导入 FormsModule 获取其中的公开声明(出口)。