首页 文章

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

提问于
浏览
0

在角度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 回答

  • 1

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

相关问题