在角度2中,假设我有一个使用组件的路线:
{ path: 'new-project', component: BasicForm },
现在,如果我直接导入组件,这是有效的:
import { BasicForm } from './foo/basicForm.component';
但是我应该如何改为导入模块:
import { BasicForm } from './foo/basicForm.module';
这不起作用,因为 BasicForm
未在模块文件中定义,而是在组件文件中定义 .
那么该组件是否可以加载模块的所有导入和声明?
根据@HristoKolev的建议,我将其添加到模块中:
export { BasicForm } from './basicForm.component';
这允许路由从模块中查看BasicForm组件 .
但是,BasicForm组件似乎没有看到NgModule中的Imports . 特别是,BasicForm无权访问组件模块定义的FormsModule:
import { FormsModule } from '@angular/forms';
...
@NgModule({
imports: [CommonModule, FormsModule],
declarations: [BasicForm]
})
但在BasicForm模板中,错误是:
Can't bind to 'ngModel' since it isn't a known property of 'input
导致错误的模板行:
<input type="text" class="form-control" id="directory" placeholder="foo" [(ngModel)]="project.directory">
因此,在解析此模板时,angular不会从FormsModule中找到ngModel指令 .
1 回答
在模块文件中添加
export * from './basicForm.component';