2017-05-13 5 views
0

Ich erhalte einen Fehler ERROR in ng: ... template.html: Eigenschaft 'E-Mail' existiert nicht auf Typ '{} 'bei der Verwendung von Angular Cli Kompilieren> ng build --prod --aotAngular - Eigenschaft 'E-Mail' existiert nicht auf Typ '{}' mit AoT Kompilierung

Formularvorlage:

 <form (ngSubmit)="login()" #loginForm="ngForm"> 

      <input [(ngModel)]="user.email" id="email" 
        type="email" class="validate" name="email" required> 
      <label for="email">Email</label> 

      ... 

     </form> 

LoginComponent:

export class LoginComponent { 

    public user = {}; 
    public errorMsg = ''; 
    email: any; 
    password: any; 

constructor(
... 
) { 

eine E-Mail-Typ Hinzufügen: string oder gefunden: Alle in der Forms Komponente macht den Trick nicht. Es scheint sich auf eine Factory-Angular-Komponente {} zu beziehen. Wie kann ich diesen Fehler umgehen?

+1

Wo ist der Code Ihrer Komponente? Hast du den Code gelesen? Das E-Mail-Feld, das Sie verwenden, befindet sich im Feld "Benutzer" der Komponente. Nicht auf der Komponente. –

+0

Wo und wie wird einem Benutzer ein Wert zugewiesen? –

+0

Ich denke, das sollte Benutzer helfen: any = {} – yurzui

Antwort

2
public user = {}; 

Dieses Benutzerobjekt hat keine Eigenschaft namens email. Ändern Sie es in

public user = { email: '' }; 

zum Beispiel.

+0

Perfekt. Vielen Dank! –

1

Ihr Problem kommt von der Benutzer Instanziierung.

sollte folgende Instantiierung arbeiten:

public user = {'email': ''} 

Aber ein ähnlicher Fehler für das Passwort (je nachdem, wie Sie es in der Vorlage verwenden) passieren kann.

In diesem Fall sollte die Instanziierung sein:

public user = {'email': '', 
       'password': '' 
       } 

Ein besserer Weg ist es, eine Benutzerklasse zu erstellen. Die user.ts sollte wie folgt sein:

export class User { 

    constructor(public email?: string, 
       public password?: string) { } 

} 

und dann den Benutzer in Ihrem LoginComponent wie folgt instanziiert:

public user: User = new User(); 
0

Sie können auch eine Art von Objekt zuweisen.

Verwandte Themen