2016-10-01 277 views
0

在角2使用分量,说我有一个使用部件的路由:角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

'NgModule'也有一个“出口”财产而你可以尝试使用它,但我不知道,如果你可以使用它,你想要的方式。 – spongessuck

+1

@spongessuck你的代表目前是666 ...不知道我应该相信你的建议:) – mtyson

+1

你可以用upvote修复...;) – spongessuck

回答

1

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

+0

这让我使用组件通过导入模块从路由,但模块定义似乎不可用在组件中。更新的问题。 – mtyson

+0

我不明白它为什么会这样。尝试导入BrowserModule –