Angular Shared Module导入不会导入提到的模块

时间:2019-01-29 08:57:17

标签: angular

我已将共享模块添加到我的应用程序。看起来很简单。

const imports = [
    CommonModule,
    RouterModule,
    BrowserModule,
    FormsModule, ReactiveFormsModule
];


@NgModule({imports})

export class SharedModule {}

当我将共享模块导入另一个模块时,看不到导入的人员。我收到这样的错误:“无法绑定到'formGroup',因为它不是'form'的已知属性。(”,这意味着FormsModule无法正确导入。 如果我将这些基本模块直接导入到我的应用程序模块中,就可以了。

我们非常感谢您的帮助和建议。

2 个答案:

答案 0 :(得分:2)

您很有可能还需要导出这些模块。

通常:

@NgModule({
    imports: [
        SomeModule
    ],
    declarations: [
        ...
    ],
    exports: [
        SomeModule,
    ]
});

另请参阅此angular doco ...

  

通过重新导出 CommonModule和FormsModule,导入此SharedModule的任何其他模块都可以从CommonModule访问NgIf和NgFor之类的指令,并且可以使用[[ngModel)]绑定到组件属性。 FormsModule中的指令。

答案 1 :(得分:0)

您必须导出在共享模块中使用的依赖模块,以便从不导入这些依赖的其他地方使用共享模块。

import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { CustomerComponent } from './customer.component';

@NgModule({
 imports:      [ CommonModule ],
 declarations: [ CustomerComponent ],
 exports:      [ CustomerComponent
                 CommonModule, FormsModule ]
})
export class SharedModule { }