2016-04-09 5 views
0

Ich habe den folgenden einfachen Code:Ionen Toggle sendet das Formular

@Page({ 
    template: ` 
     <ion-content> 
     <form (submit)="submit()"> 
      <ion-item> 
       <ion-label>Some Toggle</ion-label> 
       <ion-toggle [(ngModel)]="toggle"></ion-toggle> 
      </ion-item> 

      <div *ngIf="toggle">some content 1</div> 
      <div *ngIf="!toggle">some content 2</div> 

      <button type="submit">Submit</button> 
     </form> 
     </ion-content> 
    `, 
}) 
export class TestPage{ 

    submit(){ 
    console.log("form submit"); 
    } 
} 

Das Problem ist, dass, wenn ich auf dem Toggle klicken Sie auf die Form der Funktion einreichen aufruft.

Hat jemand eine Lösung für dieses Problem?

+0

ich nicht Ionic verwenden. Aber wenn du Toggle-Button sagst, heißt das ''? – micronyks

+0

Nein, wenn ich toggle-button sage, meine ich '', was eine ionische Komponente ist, die einen booleschen Wert wie eine Checkbox enthält. – Daskus

Antwort

0

Inbetriebnahme der Funktionsaufruf in der submit Taste mein Problem gelöst:

@Page({ 
    template: ` 
     <ion-content> 
     <form> 
      <ion-item> 
       <ion-label>Some Toggle</ion-label> 
       <ion-toggle [(ngModel)]="toggle"></ion-toggle> 
      </ion-item> 

      <div *ngIf="toggle">some content 1</div> 
      <div *ngIf="!toggle">some content 2</div> 

      <button type="submit" (click)="submit()">Submit</button> 
     </form> 
     </ion-content> 
    `, 
}) 
export class TestPage{ 

    submit(){ 
    console.log("form submit"); 
    } 

}

0

In der Tat haben Sie Zwei-Wege-Bindung auf der toggle Eigenschaft und Sie binden Ihre ngIf s auf dieser Eigenschaft. Dies bedeutet, dass die Aktualisierungen automatisch berücksichtigt werden, ohne dass das Formular gesendet werden muss.

Um Updates nur beim Senden zu berücksichtigen, müssen Sie eine andere Eigenschaft verwenden. So etwas Ähnliches:

@Page({ 
    template: ` 
    <ion-content> 
     <form (submit)="submit()"> 
     <ion-item> 
      <ion-label>Some Toggle</ion-label> 
      <ion-toggle [(ngModel)]="toggle"></ion-toggle> 
     </ion-item> 

     <div *ngIf="panelToggle">some content 1</div> <------- 
     <div *ngIf="!panelToggle">some content 2</div> 

     <button type="submit">Submit</button> 
     </form> 
    </ion-content> 
    `, 
}) 
export class TestPage{ 
    submit() { 
    console.log("form submit"); 
    this.panelToggle = this.toggle; // <-------- 
    } 
} 
+0

Nein, du hast meine Frage nicht verstanden. Wenn ich auf den Schalter klicke, wird das Formular gesendet. Wie kann ich verhindern, dass der Schalter dies tut? Ich möchte nur das Formular abschicken, wenn ich auf den Absenden-Button klicke – Daskus

Verwandte Themen