2017-05-02 37 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">