2016-09-28 3 views
0

Как мы используем проверку углов2 для подтверждения пароля? Я использую угловой версии 2.0.Angular2: подтверждение формы модели для подтверждения пароля

Я использую класс formbuilder для модели ведомой формы следующим образом:

this.myForm = this.fb.group({ 
 
     name: ['', Validators.compose([Validators.required])], 
 
     email: [''], 
 
     passwordgroup: this.fb.group({ 
 
     password: ['', Validators.compose([Validators.required])], 
 
     confirm_password: ['', Validators.compose([])] 
 
     }) 
 
    }); 
 

ответ

3

Вы можете просто использовать собственный валидатор, добавив эту функцию в свой компонент, как этот

import { AbstractControl } from '@angular/forms'; 

    function passwordConfirming(c: AbstractControl) { 
     return c.get('password').value === c.get(' confirm_password').value 

this.myForm = this.fb.group({ 
     name: ['', Validators.compose([Validators.required])], 
     email: [''], 
     passwordgroup: this.fb.group({ 
     password: ['', Validators.compose([Validators.required])], 
     confirm_password: ['', Validators.compose([])] 
     }, { validator: passwordConfirming }) 
    }); 
+0

Вся моя форма (myForm) должна быть недействительной, если пароли не совпадают, верно? –

+0

На самом деле вы не можете определить функцию, подобную этой функции abc (x: X) {} 'в Angular2. Нужно использовать что-то похожее на это 'abc = function (x: X) {}' –

+0

Функция abc (x: X) {}, кажется, работает нормально. – victoroniibukun

1
this.myForm = this.fb.group({ 
     name: ['', Validators.compose([Validators.required])], 
     email: [''], 
     passwordgroup: this.fb.group({ 
     password: ['', Validators.compose([Validators.required])], 
     confirm_password: ['', Validators.compose([])] 
     }, passwordConfirming) 
    }); 

Извлечение ключа 'validator' выше (удаление этой нотации объекта) и просто использование имени валидатора 'passwordConfirming', работающего без синтаксической ошибки.

Смежные вопросы