2016-10-01 222 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 –