Angular 2:使用路由模块中的组件

时间:2016-10-01 14:31:32

标签: angular angular2-routing

在角度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 个答案:

答案 0 :(得分:1)

在模块文件中添加export * from './basicForm.component';