2017-03-04 8 views
0

UPDATE: Ich ngSwitchWhen-ngSwitchCase aktualisiert und dann kann ich zwei Registerkarten für die Anmeldung und die Registrierung sehen, aber ich bekomme Fehler If ngModel is used within a form tag, either the name attribute must be set or the formIonic2 ngSwitchWhen Fehler für Formulare

Ich habe eine Schablone in meinem Projekt, das aussieht wie folgt. Grundsätzlich loggen und registrieren ich mich über die selbe Seite.

<ion-navbar *navbar> 
</ion-navbar> 

<ion-content> 

    <div align="center"> 
    <h3>What you want to do?</h3> 
    </div> 

    <div [ngSwitch]="authType"> 
    <div padding> 
     <ion-segment [(ngModel)]="authType"> 
     <ion-segment-button value="login"> 
      Login 
     </ion-segment-button> 
     <ion-segment-button value="signup"> 
      Signup 
     </ion-segment-button> 
     </ion-segment> 
    </div> 

    <form *ngSwitchWhen="'login'" (ngSubmit)="onSubmitLogin()"> 
     <div> 

     <div> 
      <ion-item> 
      <ion-label for="username">Username</ion-label> 
      <ion-input type="email" id="username" [(ngModel)]="username"></ion-input> 
      </ion-item> 
     </div> 

     <div> 
      <ion-item> 
      <ion-label for="password">Passwort</ion-label> 
      <ion-input type="password" id="password" [(ngModel)]="password"></ion-input> 
      </ion-item> 
     </div> 
     </div> 

     <div> 
     <button block type="submit">Login</button> 
     </div> 
    </form> 

    <form *ngSwitchWhen="'signup'" (ngSubmit)="onSubmitRegister()"> 
     <div> 

     <div> 
      <ion-item> 
      <ion-label for="username">Username</ion-label> 
      <ion-input type="text" id="username" [(ngModel)]="username"></ion-input> 
      </ion-item> 
     </div> 

     <div> 
      <ion-item> 
      <ion-label for="email">Email</ion-label> 
      <ion-input type="email" id="email" [(ngModel)]="email"></ion-input> 
      </ion-item> 
     </div> 


     <div> 
      <ion-item> 
      <ion-label for="password1">Password</ion-label> 
      <ion-input type="password" id="password1" [(ngModel)]="password1"></ion-input> 
      </ion-item> 
     </div> 

     <div> 
      <ion-item> 
      <ion-label for="password2">Repeat Password</ion-label> 
      <ion-input type="password" id="password2" [(ngModel)]="password2"></ion-input> 
      </ion-item> 
     </div> 


     </div> 

     <div> 
     <button block type="submit">Sign up</button> 
     </div> 

    </form> 

    </div> 

</ion-content> 

Das gibt mir Fehler Template parse errors: Can't bind to 'ngSwitchWhen' since it isn't a known property of 'form'.

Dieser Code wird verwendet in einem meiner älteren Ionic2 Projekt zu arbeiten. Hat sich etwas verändert oder mache ich etwas falsch?

Antwort

0

Hinzufügen name-Attribut auf Input-Tag löste das Problem:

<ion-input type="text" id="username" name="username" [(ngModel)]="username"></ion-input>