2016-10-01 2 views
0

В угловой 2, что у меня есть маршрут, который использует компонент:Угловое 2: Используйте компонент из модуля в маршрутизации

{ path: 'new-project', component: BasicForm }, 

Теперь, это работает, если импортировать компонент непосредственно:

import { BasicForm } from './foo/basicForm.component'; 

Но как я должен идти об импорте модуля вместо:

import { BasicForm } from './foo/basicForm.module'; 

Это не работает, потому что BasicForm я s не определен в файле модуля, а файл компонента.

Для того чтобы компонент был загружен всеми импортерами и объявлениями модуля доступны?


После @HristoKolev предложения, я добавил это к модулю:

export { BasicForm } from './basicForm.component'; 

И что позволяет маршрут, чтобы увидеть компонент BasicForm из модуля.

Однако компонент BasicForm, похоже, не видит импорт из NgModule. В частности, 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"> 

Так что угловой не находит директиву ngModel из FormsModule при разборе этого шаблона.

+1

'NgModule' также имеет собственность-«экспорта», вы можете попробовать использовать его, но я не уверен, если вы можете использовать его так, как вы хотите. – spongessuck

+1

@spongessuck Вы в настоящее время являетесь представителем 666 ... не уверены, что я должен доверять вашим советам :) – mtyson

+1

Вы можете исправить это с помощью upvote ...;) – spongessuck

ответ

1

В файле модуля добавить export * from './basicForm.component';

+0

Это позволило мне использовать компонент от маршрута, импортируя модуль, но определения модулей не отображаются в компоненте. Обновленный вопрос. – mtyson

+0

Я не понимаю, почему так оно и будет. Попробуйте импортировать 'BrowserModule' –

Смежные вопросы