2016-04-09 3 views
0

У меня есть следующий простой код:ион-тумблер отправляет форму

@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"); 
    } 
} 

Проблема заключается в том, что всякий раз, когда я нажимаю на переключатель форма вызывает функцию представить.

У кого-нибудь есть решение этой проблемы?

+0

Я не использую ионным. Но когда вы говорите, что кнопка переключения, означает ли это ''? – micronyks

+0

Нет, когда я говорю кнопку переключения, я имею в виду '', который является ионным компонентом, который имеет булевое значение, как флажок. – Daskus

ответ

0

Ввод вызова на функцию представить в кнопку отправки решить мою проблему:

@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

На самом деле у вас есть двусторонняя привязка на имущество toggle, и вы связываете свой ngIf с на этой недвижимости. Это означает, что его обновления автоматически учитываются без необходимости отправки формы.

Принимать во внимание обновления только при отправке, вам необходимо использовать другое имущество. Нечто подобное:

@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

Нет, ты не понял мой вопрос. Когда я нажимаю на переключатель, форма отправляется. Как я могу предотвратить включение этого переключателя? Я хочу отправить форму только при нажатии кнопки отправки – Daskus

Смежные вопросы