我想在对应的事件打开时触发一个事件。让我来解释一下这个场景。
这是我的组件选择器
<app-sadad class="knet-div" [payMethod]="'knet'"></app-sadad>它被放置在另一个组件html中,在app-sadad组件中,我使用了反应形式,如果payMethod = Knet,我必须validators.required到特定的formControl(olpid)。
this.sadadForm = new FormGroup({
'olpid': new FormControl(''),
'firstName': new FormControl('', Validators.required)
});我已经尝试过ngOnInit和ngAfterViewInit,它们不会在表单加载时触发,它会在应用程序加载时触发。请告诉我在特定的表单加载时触发的事件。
发布于 2018-11-14 19:09:48
如果payMethod ===的值为'knet',则只需检查onInit,然后编写包含required的验证器。否则,将其保留为空。
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)
});
}希望这能有所帮助。
https://stackoverflow.com/questions/53298327
复制相似问题