Ich erstelle meine eigene Validierung für ein bestimmtes FormControl, aber ich kann nicht herausfinden, wie Sie einen externen Wert außerhalb meiner Validierungsfunktion definiert.Angular2 - Formulare Benutzerdefinierte Validierung - Stellen Sie eine Referenz außerhalb der Validierungsfunktion()
Code:
@Component({
selector: 'city-autocomplete',
template: `
<label for="incidade">Cidade/Comarca:</label>
<input type="text" class="autocomplete-imput" id="incidade"
[formControl]=inputcidade
>
`,
styleUrls: ['./city-autocomplete.component.scss']
})
export class CityAutocompleteComponent {
extenalValue :boolean = false
inputcity = new FormControl('', [this.cityValidator]);
//My Validator:
cityValidator(ctrl: AbstractControl) {
const isValid = this.extenalValue // <== this is UNDEFINED
return isValid ? null : {
cityValidator: {
valid: false
}
}
}
}
HTML:
ERROR:
Es ist zeigt extenalValue nicht definiert ist.
Wie ich sehen konnte, läuft Abstract Control VOR @Component, so dass ich nichts außerhalb der Validator-Funktion definieren kann.
meine Frage:
Wie soll ich Bezug auf Werte außerhalb dieser Funktion machen?
Danke.
Danke, ich werde versuchen, es zu tun. Ich habe diese Validierungsfunktion in der Komponente gemacht, weil es nur 2 oder 3 Codezeilen sein wird und es nur hier verwendet wird. Ich dachte, dass es sich nicht lohnt, eine andere Datei in meiner App mit einer neuen Direktive/Export-Funktion zu erstellen und diese in Fässer (index.ts) und Modul nur deshalb einzufügen. –