Вы, конечно, на правильном пути здесь. Я полагаю, что ваша проблема заключается здесь:
<app-myModal [confirm]="confirm"></app-myModal>
Это односторонняя привязка от вашего родителя к вашему новому компоненту модального вида. Когда ваш clr-modal
меняет этот флаг на false
для вашего модального вида, ваш родитель, вероятно, все еще думает, что это true
.
Что вам нужно сделать, это ввести двустороннее связывание к вашему промежуточному модальному представлению. Вы можете сделать это, просто добавив модальное представление:
@Input('confirm') confirm: boolean;
@Output() confirmChange = new EventEmitter<boolean>();
Затем, автоматически свяжите вашу двустороннюю привязку с родителем, используя banana-in-a-box :
<app-myModal [(confirm)]="confirm"></app-myModal>
Банан в коробке - это просто синтактический c сахар для одновременного использования ваших входов и выходов. Для получения дополнительной информации см. Официальное руководство: https://angular.io/guide/template-syntax#basics -of-двухстороннего связывания
Если вышеуказанного недостаточно для решения проблемы, возможно, вы re-way-bound с confirm
из вывода clr-modal
. Вы можете попробовать распаковать ассоциацию следующим образом:
<clr-modal [clrModalOpen]="confirm" (clrModalOpenChange)="confirmChange.emit($event)">
///modal Content
</clr-modal>
Тогда я ожидал бы, что ваш компонент модального представления действительно будет действовать как проходной путь для фактического открытого состояния модала.