2016-12-20 4 views
0

У меня есть компонент, который имеет этот ребенок:Angular2 - переключить другой элемент на основе событий из компонента детского

<fb-customer-list (inSearchMode)="listIsInSearchMode = event$"></fb-customer-list> 

Как вы можете видеть, он прослушивает события от этого ребенка, который просто boolean value (указывает, изменил ли ребенок режимы).

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

<div class="center fade" *ngIf="!listIsInSearchMode"> 

Но это работает только первый раз, когда логические изменения. После этого этот div всегда скрыт. Я знаю, что ngIf удаляется непосредственно из DOM, но, конечно, когда событие снова становится истинным, оно должно быть повторно добавлено.

Я также попытался применить style.visibilty на основе bool, а также используя атрибут hidden ... но оба дают тот же результат.

Я вижу, что событие меняется от истинного к ложному в дочернем, но кажется, что первый раз, когда родитель не делает этого?

ответ

1

Я не уверен, если это проблема, но вы должны написать $ события и не события $.

Является ли div, имеющим * ngIf, искажает компонент списка fb-customer-list? Если это так, вы не можете слушать обратный вызов от детей, которые не являются «живыми».

+0

Спасибо, что-то настолько очевидное, но я не видел дерева с деревьев! $ event - это исправление, большое вам спасибо :) – rmcsharry

+0

Happy to help :) –