我想在打开相应事件时触发一个事件。让我解释一下情况。
这是我的组件选择器
<app-sadad class="knet-div" [payMethod]="'knet'"></app-sadad>
放置在另一个组件html内,在app-sadad组件内,我使用了反应形式,如果payMethod = Knet,我必须使用验证器。需要特定的formControl(olpid)。
this.sadadForm = new FormGroup({
'olpid': new FormControl(''),
'firstName': new FormControl('', Validators.required)
});
我尝试了ngOnInit,ngAfterViewInit,它们没有在表单加载时触发,而是在应用程序加载时触发。请告诉我该事件在特定表单加载时触发。
答案 0 :(得分:0)
您只需要检查onInit(如果payMethod的值==='knet'),然后编写包括必填项的Validators。否则将其保留为空。
Validators.compose返回ValidationFn。您可以将其分配给表单控件。
@Input() payMethod;
validatorsComposition = null;
ngOnInit(){
if(this.payMethod === 'knet'){
this.validatorsComposition = Validators.compose([Validators.required]);
}
this.sadadForm = new FormGroup({
'olpid': new FormControl('', this.validatorsComposition),
'firstName': new FormControl('', Validators.required)
});
}
希望这会有所帮助。