2015-09-21 4 views
6

У меня есть приложение, которое содержит три компонента. Приложение, EditView, Диалог.Угловой 2 дочерний компонент относится к исходному компоненту

Компоненты приложения содержат компоненты EditView, которые могут содержать многие другие компоненты EditView и один компонент Dialog (если компонент Dialog отображается на странице).

Компонент Dialog содержит компонент приложения. Когда я положил, что в диалоге компонента в объявлении пути:

directives:[Application] 

I'am получаю эту ошибку:

Неожиданное значение директивы «неопределенные» на компонентном Вид «Диалог»

Можно вообще, иметь такую ​​структуру, где дочерний компонент может содержать компонент с верхнего уровня в отношении некоторых условий?

Если я отменил компонент приложения из диалогового окна или заменил его на другие компоненты, он отлично работает.

Zlaja

+0

Этого обсуждение от Google угловых групп: https://groups.google.com/forum/#!topic/angular/tDU5sw1vBwc – zlaja

ответ

3

Ввод его в списке директив не будет работать, но вы все равно можете иметь доступ к родительскому компоненту, имея его вводят в конструкторе ребенка директивы:

constructor(@Host(Application) application: Application) { 

} 

И родительский компонент может получить живой список дочерних компонентов с использованием @Query:

constructor(@Query(EditView) editViews: QueryList<EditView>){ 

} 
+0

Justo в clerify. Я хочу иметь новый экземпляр приложения в компоненте Dialog. Приложение -> EditView -> Dialog -> Приложение (это новый экземпляр). – zlaja

+0

С forwardRef Я сумел, что компонент Dialog может видеть компонент приложения в директивах, я проверил его в режиме отладки. Теперь я получаю эту ошибку: безусловный цикл компонента в приложении. См. Https://groups.google.com/forum/#!topic/angular/tDU5sw1vBwc. – zlaja

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