Vscode-ng-language-service: [Angular] Bezeichner 'erforderlich' ist nicht definiert. '__type' enthält kein solches Mitglied

Erstellt am 28. Aug. 2017  ·  22Kommentare  ·  Quelle: angular/vscode-ng-language-service

Eigenschaftsfehler von AbstractControlDirective

Ich habe folgenden Code:

<div>
    <label for="fullname">Passenger name:</label>
    <input
      type="text"
      name="fullname"
      required
      #fullname="ngModel"
      [ngModel]="detail?.fullname">

      <div class="error" *ngIf="fullname.errors?.required && fullname.dirty">
        Passenger name is required.
      </div>
  </div>

Durch die Verwendung einer Eigenschaft innerhalb der Eigenschaft errors der ngModel-Referenz wird mir dieser Fehler angezeigt.
Dies sollte kein Fehler sein, da es sich um eine gültige Syntax für vorlagengesteuerte Formulare handelt.

Hilfreichster Kommentar

das wird das problem lösen:
Fügen Sie einfach Casting zu Bool hinzu mit !! :


Der Name des Passagiers ist erforderlich.

Alle 22 Kommentare

Schließung wegen Duplikat von Nr. 149

Ich habe es mit dem obigen Ansatz versucht, aber es ist kläglich gescheitert.

Bitte sehen Sie sich diesen Code an -

Dieses Feld wird benötigt
          <div *ngIf="username.errors.minlength">Minimum length should be {{username.errors.minlength.requiredLength}}</div>

Wurffehler durch TS-Compiler -
[Angular] Bezeichner 'erforderlich' ist nicht definiert. '__type' enthält kein solches Mitglied

Ich habe das gleiche versucht, bin aber nicht rausgekommen

Beispiel
versuche "?" nach "Preis".
"

Preis ist erforderlich.
"

Vorname ist erforderlich.
Der Vorname sollte mindestens 3 Zeichen lang sein.

Vorname stimmt nicht mit Muster überein.


ich habe das versucht

<div *ngIf="firstName.errors.required">First Name is required. <div *ngIf="firstName.errors.minlength">First Name should be minimum 3 character.</div> <div *ngIf="firstName.errors.pattern">First Name doesn't Match pattern.</div> </div> i tried this

das wird das problem lösen:
Fügen Sie einfach Casting zu Bool hinzu mit !! :


Der Name des Passagiers ist erforderlich.

Beispiel
versuche "?" nach "Preis".
"

Preis ist erforderlich."

Ich habe dieses Problem gelöst und hinzugefügt? vor Parameter und nicht nach Fehlern? Aber können Sie es bitte erläutern und versuchen zu erklären, wie dieses Problem gelöst wird, indem Sie einfach das Fragezeichen verschieben? @Danielaparona

das wird das problem lösen:
Fügen Sie einfach Casting zu Bool hinzu mit !! :


Der Name des Passagiers ist erforderlich.

Das hat mein Problem gelöst! Danke!

Beispiel
versuche "?" nach "Preis".
"

Preis ist erforderlich."

Bei mir hat es funktioniert. Könnten Sie mir bitte sagen, warum ich "?" hinzufügen sollte.

das löst auch mein problem einfach hinzufügen?

Aber weder das Casten als Boolean noch die Verwendung von ? (kann nicht haben) löst nicht die Tatsache, dass IntelliSense die Eigenschaften von _errors_ nicht finden kann.

Preis versuchen['Fehler']['erforderlich']

@EeeEui das ? (Operator für sichere Navigation) nimmt eine Variable, auch wenn sie möglicherweise ungültig ist, und behandelt die Ausnahme intern (in diesem Fall ungültig = falsch).

? hat bei mir nicht funktioniert. !! nur in meinem Fall funktioniert.

? hat nicht funktioniert f. !! nur in eckig 7+ gearbeitet.

<div class="alert alert-danger" *ngIf="username.touched && username.invalid" class="alert alert-danger">
            <div *ngIf="!!username.errors.required">Username is required</div>
            <div *ngIf="!!username.errors.minlength">Username Should be minimum {{ !!username.errors.minlength.requiredLength }} Charecters.</div>
          </div>

Es scheint jetzt ein Problem mit VSCode zu sein, da der Fehler in meinem Editor immer noch hervorgehoben wird, Angular ihn jedoch nicht als solchen erkennt. Um dies für VSCode zu beheben, habe ich den Fehler auf der TypeScript-Seite mit einer Funktion überprüft.

HTML

html

Typoskript

ts

Das hat bei mir funktioniert und es sieht sauberer aus.
<div class="error" *ngIf="fullname.hasError('required')">
Dieser Weg ist auch dann nützlich, wenn wir auch benutzerdefinierte Validierungen durchführen, wie z. B. fullname.hasError('invalidName')

Ich hatte den gleichen Fehler. *ngIf="formGroup?.get('fullName').hasError('required')" hat bei mir funktioniert

Es scheint jetzt ein Problem mit VSCode zu sein, da der Fehler in meinem Editor immer noch hervorgehoben wird, Angular ihn jedoch nicht als solchen erkennt. Um dies für VSCode zu beheben, habe ich den Fehler auf der TypeScript-Seite mit einer Funktion überprüft.

HTML

html

Typoskript

ts

Großer Bruder, das ist zu viel Mühe für dich.

Do *ngIf="yourForm.get('yourfield').hasError('required')"

Dieses Problem wurde aufgrund von Inaktivität automatisch gesperrt.
Bitte reichen Sie ein neues Problem ein, wenn Sie auf ein ähnliches oder verwandtes Problem stoßen.

Lesen Sie mehr über unsere Richtlinie zum automatischen Sperren von Konversationen .

_Diese Aktion wurde automatisch von einem Bot ausgeführt._

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen