bbc*_*eno 11 typescript ionic-framework ionic2 ionic3 angular
我在这里切换:
<ion-toggle (ionChange)="notify(value)"></ion-toggle>
Run Code Online (Sandbox Code Playgroud)
当我点击这个时我想调用方法notify通过参数传递toggle值.我如何获得切换值?
谢谢!
seb*_*ras 34
就像你在Ionic2 Docs - Toggle中看到的那样,更好的方法是使用ngModel 将切换绑定到组件中的属性.
组件代码:
public isToggled: boolean;
// ...
constructor(...) {
this.isToggled = false;
}
public notify() {
console.log("Toggled: "+ this.isToggled);
}
Run Code Online (Sandbox Code Playgroud)
视图:
<ion-toggle [(ngModel)]="isToggled" (ionChange)="notify()"></ion-toggle>
Run Code Online (Sandbox Code Playgroud)
这样,您不需要发送值,因为它已经是组件中的属性,您始终可以通过使用获取值this.isToggled.
UPDATE
就像@ GFoley83在评论中提到的那样:
当ionChange直接绑定时,要非常小心
ngModel.当值绑定ngModel更改时,将通过某人单击切换从视图或通过代码在组件中进行更改来调用notify方法,例如当您执行新的GET调用时.我最近遇到了一个问题,即单击切换触发aPATCH,这意味着每个其他客户端会PATCH在绑定到切换的数据发生更改时自动触发.我们用过:
<ion-toggle [ngModel]="isToggled" (ngModelChange)="notifyAndUpdateIsToggled()"></ion-toggle>解决这个问题
Jay*_*ria 14
您可以使用$event在ionChange.
视图:
<ion-toggle (ionChange)="notify($event)"></ion-toggle>
Run Code Online (Sandbox Code Playgroud)
控制器:
notify(event) {
console.log(event.checked);
}
Run Code Online (Sandbox Code Playgroud)
有2种检查方式。
第一个就像@Chathuranga Silva 建议的那样
html
<ion-toggle (ionChange)="notify($event)"></ion-toggle>
ts
notify(event: any) { console.log("toggled: "+event.target.checked); }
第二个是这样的:
html
<ion-toggle (ionChange)="notify()" [checked]="isToggled"></ion-toggle>
ts
var isToggled: boolean = true;
notify() {
console.log("toggled: "+ this.isToggled);
}
Run Code Online (Sandbox Code Playgroud)
您选择哪一个取决于您,我推荐第二个,因为在构造函数/onInit 中操作切换会更容易,并且在notify()方法外使用此值也更容易。
| 归档时间: |
|
| 查看次数: |
38675 次 |
| 最近记录: |