2017-08-07 34 views
1

我想在Angular 2中使用Reactive Forms Module創建一個表單,並且我試圖設置某個表單的驗證字段如果選擇了另一個字段。
我做錯了什麼?Angular 2或4 Reactive Form集合驗證取決於另一個字段值

ngOnInit() { 
    this.martialForm = this.fb.group({ 
     'maritalStatus': [this.model.maritalStatus, [Validators.required]], 
     'spouseTitle': [this.spouseModel.title, null] 
    },{ 
     validator: this.validateIsSpouse 
    }) 
} 

validateIsSpouse(group: FormGroup) { 
    if(this.model.maritalStatus == "01"){ 
     group.controls['spouseTitle'].setErrors({ isRequired: true }); 
    } 

    return null; 
} 
+1

這個問題的角度,而不是angularjs:P,Angular1命名AngularJS,Angular2 +命名角。其中關於'JS'的人。 :D –

+0

感謝您提供的信息,這是我第一次問問題。 :) – Witchayanin

+0

你面臨什麼問題?廣義上說「不工作」是什麼?根據這些代碼,我們無法確定是否存在問題,如果有問題,它是什麼?如果它在模板中,則需要(並且無論如何)向我們展示該模板。 – Alex

回答

0

自定義驗證功能import語句和代碼和驗證後立即寫入應在下列方式:

// import statement 

function validateIsSpouse(group: FormGroup) { 
    let maritalStatus = group.get('maritalStatus').value; 
    if(maritalStatus == "01"){ 
    retun { isRequired: true }; 
    } 
    return null; 
} 

// @Component 

export class MyClass implements OnInit { 

    constructor(private fb: FormBuilder) {} 

    ngOnInit() { 
    this.martialForm = this.fb.group({ 
     'maritalStatus': [this.model.maritalStatus, [Validators.required]], 
     'spouseTitle': [this.spouseModel.title, null] 
    },{ validator: validateIsSpouse }); 
    } 

} 
相關問題