2017-05-02 40 views
0

我试图找到链接两个组件的验证的最佳方法。以angular2形式输入之间的验证依赖关系?

说我有两个复选框。 我想要第二个输入仅在第一个输入被选中时才需要。

我刚刚开始验证,我不确定我该如何做到这一点。

我想我可以在使用模型驱动窗体时更改我的component.ts文件中的验证规则。

这是处理这个问题的好方法吗?还是有帮手来处理这种情况?

+0

您可以自定义的验证规则(https://angular.io/docs/ts/latest/cookbook/form-validation.html#!#custom - 两个模型字段绑定到两个复选框。因此,可以判断模型是否有效不是基于其当前状态。另一种选择是定义一个包含两个复选框的自定义组件,实现ControlValueAccessor接口(https://angular.io/docs/ts/latest/api/forms/index/ControlValueAccessor-interface.html),但这将是矫枉过正恕我直言。这真的取决于你的具体情况。 –

回答

0

声明一个名为checbox1checked的变量,并为其分配一个初始值false。

let checbox1checked:boolean = false;

如果用户检查checkbox1,分配checbox1checked的真正价值。

在验证,看看checkbox2检查是否checbox1checked是真实的,如果是则显示checkbox2您的错误信息,如果没有忽略你的checkbox2错误消息。

0

可能是你正在寻找这样的:

<input type="checkbox2" [attr.required]="checked1"> 
<input type="checkbox1" [(ngModel)]="checked1">