2017-01-23 1 views
0

Ich muss den Wert des Username-Steuerelements und des Passwort-Steuerelements abrufen, um sie zu vergleichen.Wie zwei Steuerelemente in benutzerdefinierten Validierer vergleichen?

Hier ist meine benutzerdefinierten Validator

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

export class PasswordValidator { 
    static isNotEqual(control: FormControl) { 
     if (control.get('username').touched && control.get('password').touched) { 
      if (control.get('username').value != control.get('password').value) { 
       return { isNotEqual: true } 
      } else { 
       return { isNotEqual: false } 
      } 
     } else { 

     } 
    } 
} 

Das Problem hier ist, dass ich nicht den Wert der beiden Kontrollen bekommen. Wer hilft?

Antwort

1

Sie können auf zweite Kontrolle durch Eltern:

isEqual(c: FormControl): any { 
     if (c.parent) { 
      if (c.parent.value['username'] !== c.value) { 
       return {isNotEqual: true} 
      } else { 
       return {isNotEqual: false} 
      } 
     } 

     return null; 
    } 

Sie haben diese Prüfung auf die Passwort-Formular-Steuerelement, oder gegenüber hinzuzufügen.

Verwandte Themen