typescript - Angular 4: Anropa Regex-mönster från ett objekt
Jag har ett problem där koden fungerar men jag får ett Tslint-fel som jag inte kan lista ut. Denna setup fungerade när jag använde Angular 1 men nu konverterar jag applikationen till 4 med hjälp av angular-cli.
Angular: Identifier 'vin' är inte definierad. Objektet innehåller inte en sådan medlem.
Jag har delat Regex-mönster som är sparade i ett objekt som visas nedan. Det importeras till min komponent och anropas sedan med [pattern]="patterns.KEY".
Mönstret fungerar precis som det ska och valideringen fungerar, men jag får fortfarande ovanstående fel när jag kopplar det till någon av mina inmatningar. Är det för att jag saknar datatyper på patterns? Om så är fallet, hur skulle det definieras?
Felet kastas endast på mallfilen. Komponenten och Patterns-filen har inga valideringsfel.
Mallkod:
<div class="form-group">
<label for="vin">VIN</label>
<input type="text" class="form-control" id="vin" placeholder="VIN"
minlength="8" maxlength="17" required [pattern]="patterns.vin"
[(ngModel)]="model.Vin" name="Vin" #Vin="ngModel">
</div>
Komponentkod:
export class COMPONENT_NAME implements OnInit {
patterns = Patterns;
}
Mönsterfil:
export const Patterns: Object = {
vin: /^[\w\d]+$/i,
};
Svar #1
Det visade sig att svaret var ganska enkelt. patterns behövde definieras men värdet behövde sättas inuti ngOnInit():
export class COMPONENT_NAME implements OnInit {
patterns;
ngOnInit() {
this.patterns = Patterns;
}
}
Detta tar bort Tslint-problemet jag såg.
