我有一个拨动开关。我想先不检查或取消选中切换。确切地说,将根据服务器响应检查或取消选中切换,这就是我需要使用preventDefault的原因。
我使用 ionChange()而不是 click()事件处理程序。但是使用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 :(得分: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);
}
}
答案 1 :(得分: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
或构造函数中为其赋值。我希望这对某人有帮助