statusChanges не вызывается при переключении TAB - PullRequest
1 голос
/ 26 сентября 2019

У меня есть родительский компонент, который имеет две вкладки.Каждый TAB содержит один дочерний компонент.Каждый дочерний компонент имеет форму.

На родительском компоненте есть кнопка.То, что я хочу, как только две реактивные формы действительны, затем включите кнопку.Родительскому компоненту нравится

 <Button (click)="Submit()" [disabled]="!isChild1FormValid || !isChild2FormValid">Submit</Button>
 <kendo-tabstrip (tabSelect)="onTabSelect($event)">
    <kendo-tabstrip-tab [title]="'Paris'" [selected]="true">
      <ng-template kendoTabContent>
        <app-child1 (isChild1FormValid)="trigger1($event)">
        </app-child1>
      </ng-template>
    </kendo-tabstrip-tab>
    <kendo-tabstrip-tab [title]="'New York City'">
      <ng-template kendoTabContent>
         <app-child2 (isChild2FormValid)="trigger2($event)">
        </app-child2>
      </ng-template>
    </kendo-tabstrip-tab>
 </kendo-tabstrip>  

I ts-файл родителя.У нас есть методы.

trigger1(isValid: boolean) {
   isChild1FormValid = isValid;
}
 trigger2(isValid: boolean) {
   isChild2FormValid = isValid;
}

В компоненте child1.

@Output() isChild1FormValid: EventEmitter<boolean> = new EventEmitter<boolean>();
In its `ngOnInit()`, we have 
     childForm1.statusChanges.subscribe(res => {
      if(res == 'VALID') {
          this.isChild1FormValid.emit(true);
       }
       });
   }

Аналогично компоненту child2,

@Output() isChild2FormValid: EventEmitter<boolean> = new EventEmitter<boolean>();
In its `ngOnInit()`, we have 
    childForm2.statusChanges.subscribe(res => {
      if(res == 'VALID') {
          this.isChild2FormValid.emit(true);
       }
       });
    }

Допустим, форма child1 и форма child2 имеют некоторыетекстовое поле, которое требуется. (Опущенный код здесь, поскольку он просто Validators.required.

Теперь я набрал некоторый текст в элементах управления и установил точку останова в событии statusChanges. Теперь вопрос заключается в том, что метод child2 statusChanges не вызывается.Но child1 в порядке, проверка работает, я думаю, что это проблема TAB, когда я переключаю ее, она может перезагрузить ???

ОБНОВЛЕНО:

Не уверенпочему он работает в stackblitz , но не работает в моем приложении.

1 Ответ

0 голосов
/ 27 сентября 2019

Получается ошибка нижнего уровня, я не поместил имя formcontrol в элемент.Я должен быть осторожен, чтобы проверить это.

Например,

<label>
First Name:
<input type="text" formControlName="firstName">

`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...