在角度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指令。
答案 0 :(得分:1)
在模块文件中添加export * from './basicForm.component';