首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载(打开)组件时激发事件

加载(打开)组件时激发事件
EN

Stack Overflow用户
提问于 2018-11-14 18:43:49
回答 1查看 31关注 0票数 0

我想在对应的事件打开时触发一个事件。让我来解释一下这个场景。

这是我的组件选择器

代码语言:javascript
复制
<app-sadad class="knet-div" [payMethod]="'knet'"></app-sadad>

它被放置在另一个组件html中,在app-sadad组件中,我使用了反应形式,如果payMethod = Knet,我必须validators.required到特定的formControl(olpid)。

代码语言:javascript
复制
this.sadadForm = new FormGroup({
          'olpid': new FormControl(''),
          'firstName': new FormControl('', Validators.required)
      });

我已经尝试过ngOnInit和ngAfterViewInit,它们不会在表单加载时触发,它会在应用程序加载时触发。请告诉我在特定的表单加载时触发的事件。

EN

回答 1

Stack Overflow用户

发布于 2018-11-14 19:09:48

如果payMethod ===的值为'knet',则只需检查onInit,然后编写包含required的验证器。否则,将其保留为空。

Validators.compose返回一个ValidationFn。您可以将其分配给表单控件。

代码语言:javascript
复制
@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)
  });
}

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53298327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档