Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 切换选项卡时未调用statusChanges_Javascript_Angular - Fatal编程技术网

Javascript 切换选项卡时未调用statusChanges

Javascript 切换选项卡时未调用statusChanges,javascript,angular,Javascript,Angular,我有一个父组件,它有两个选项卡。每个选项卡包含一个子组件。每个子组件都有一个表单 在父组件上有一个按钮。我想要的是一旦两个反应形式有效,然后启用按钮。 父组件喜欢 <Button (click)="Submit()" [disabled]="!isChild1FormValid || !isChild2FormValid">Submit</Button> <kendo-tabstrip (tabSelect)="onTabSelect($event)">

我有一个父组件,它有两个选项卡。每个选项卡包含一个子组件。每个子组件都有一个表单

在父组件上有一个按钮。我想要的是一旦两个反应形式有效,然后启用按钮。 父组件喜欢

 <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>  
在child1组件中

@Output() isChild1FormValid: EventEmitter<boolean> = new EventEmitter<boolean>();
In its `ngOnInit()`, we have 
     childForm1.statusChanges.subscribe(res => {
      if(res == 'VALID') {
          this.isChild1FormValid.emit(true);
       }
       });
   }
@Output()IsChildFormValid:EventEmitter=new EventEmitter();
在它的“ngOnInit()”中,我们有
childForm1.statusChanges.subscribe(res=>{
如果(res=='VALID'){
this.isChildFormValid.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);
       }
       });
    }
@Output()isChild2FormValid:EventEmitter=neweventemitter();
在它的“ngOnInit()”中,我们有
childForm2.statusChanges.subscribe(res=>{
如果(res=='VALID'){
this.isChild2FormValid.emit(true);
}
});
}
假设child1表单和child2表单都有一些文本框,这是必需的。(这里省略了代码,因为它只是
验证器。必需的

现在我在控件中键入了一些文本,并在statusChanges事件中设置了断点。现在的问题是没有调用child2 statusChanges方法。但是child1是可以的,验证确实有效。我想这是切换时的选项卡问题,它可能会重新加载

更新:


不确定它为什么在中工作,但在我的应用程序中失败。

结果是一个低级错误,我没有在元素中输入formcontrol的名称。我应该仔细检查它

比如

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

名字:

`

结果是一个低级错误,我没有在元素中输入formcontrol的名称。我应该仔细检查它

比如

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

名字:

`

那么你是在输入child 1的文本框吗?两者,我输入child 1,调用了状态更改。然后我切换到child 2,没有调用相应的状态标记。你能添加stackblitz工作url吗?那么你是在输入child 1的文本框吗?两者,我输入child 1,调用了状态更改。然后我切换到child 2,对应的未调用g statusCahnges。能否添加stackblitz工作url?