ここにこのトグルがあります:
<ion-toggle (ionChange)="notify(value)"></ion-toggle>
これをクリックすると、メソッドnotifyを呼び出して、パラメーターごとにトグル値を渡します。トグル値を取得するにはどうすればよいですか?
ありがとうございました!
Ionic2 Docs-Toggle で見ることができるように、それを行うためのより良い方法は、を使用してコンポーネントからトグルをプロパティにバインドすることですngModel。
コンポーネントコード:
_public isToggled: boolean;
// ...
constructor(...) {
this.isToggled = false;
}
public notify() {
console.log("Toggled: "+ this.isToggled);
}
_
表示:
_<ion-toggle [(ngModel)]="isToggled" (ionChange)="notify()"></ion-toggle>
_
この方法では、値は既にコンポーネントのプロパティであり、_this.isToggled
_を使用して常に値を取得できるため、値を送信する必要はありません。
[〜#〜] update [〜#〜]
@ GFoley8と同じように、彼のコメントで言及されています:
IonChangeが
ngModel
に直接バインドされている場合は、十分に注意してください。ngModel
にバインドされた値が変更されたときに、誰かがトグルをクリックすることによるビューから、またはコードを介したコンポーネント内で、通知メソッドが呼び出されます。新しいGET呼び出しを行うとき。最近、トグルをクリックするとPATCH
がトリガーされるという問題がありました。これは、トグルにバインドされたデータが変更されると、他のすべてのクライアントが自動的にPATCH
をトリガーすることを意味します.これを回避するために
<ion-toggle [ngModel]="isToggled" (ngModelChange)="notifyAndUpdateIsToggled()"></ion-toggle>
を使用しました
$event
in ionChange
。
表示:
<ion-toggle (ionChange)="notify($event)"></ion-toggle>
コントローラ:
notify(event) {
console.log(event.checked);
}
チェックには2つの方法があります。
1つ目は、@ Chathuranga Silvaが提案したようなものです
html
<ion-toggle (ionChange)="notify($event)"></ion-toggle>
ts
notify(event: any) { console.log("toggled: "+event.target.checked); }
2番目は次のようなものです。
html
<ion-toggle (ionChange)="notify()" [checked]="isToggled"></ion-toggle>
ts
_var isToggled: boolean = true;
notify() {
console.log("toggled: "+ this.isToggled);
}
_
どちらを選ぶかはあなた次第です。コンストラクタ/ onInitでトグルを操作しやすく、notify()
メソッドの外でこの値を使用する方が簡単になるため、2番目の方法をお勧めします。