2017-01-12 17 views
0

私はトグルスイッチを持っています。最初にトグルをチェックしたり、チェックを外したりしないでください。正確には、サーバーの応答に基づいてトグルがチェックされるかチェックされないため、なぜpreventDefaultを使用する必要があります。イオン2トグル防止のデフォルト

click()イベントハンドラの代わりにionChange()を使用しました。しかし、ionChangeハンドラでは、またはdefaultPreventedプロパティは存在しません。は取り消し可能です。したがって、preventDefault()は機能ではないというエラーが発生します。ただし、単純なクリックハンドラでは、エラーは発生しませんが、どちらも機能しません。私もstopPropagation()で試しました。

ここにコードがあります。

HTML:

<ion-item> 
      <ion-toggle [(ngModel)]="appliance.state" (ionChange)="applianceChange($event)"></ion-toggle> 
</ion-item> 

TS:

import { Component, EventEmitter } from '@angular/core'; 

@Component({ 
    selector: 'appliances', 
    templateUrl: 'appliances.html' 
}) 
export class ApplianceModule { 
    constructor(){} 

applianceChange(event: Event){ 
    event.preventDefault(); 
} 
} 
+0

解決方法はありましたか? – ACES

答えて

0

何がトグルを無効にして、プログラムを変更した場合。 例のコードがチェックにイオントグルを切り替えると、すべての1500ミリ

@Component({ 
    selector: 'my-page', 
    template: `<ion-toggle #toggle disabled=""></toggle>` 
}) 
export class MyPage implements OnInit { 

    @ViewChild('toggle') ionToggle: Toggle; 

    constructor() { 
    } 

    ngOnInit(){ 
    setInterval(() => { 
     this.ionToggle._checked = !(this.ionToggle._checked); 
    }, 1500); 
    } 

} 
0

をオフにします、私は同じ問題を持っていたし、これは私がそれを解決する方法である:

<ion-item> 
     <ion-toggle [(ngModel)]="isChecked" (ionChange)="applianceChange($event)"></ion-toggle> 
</ion-item> 

applianceChange(ev){ 
    if(ev._checked == this.isChecked){ 
     callAction(); 
    } 
} 

callAction(){ 
    ... 
    this.appliance.state = this.isChecked //it's important to change value so it can react properly on ionChange 
    ... 
} 

あなたにisCheckedを宣言する必要がありますブール値を返し、サーバーコールを行うときにngOnitまたはコンストラクターに値を与えます。私はこれが誰かに役立つことを願っています

関連する問題