单击 ion-label 以切换离子切换

Posted

技术标签:

【中文标题】单击 ion-label 以切换离子切换【英文标题】:Click on ion-label to toggle the ion-toggle 【发布时间】:2020-09-16 17:57:33 【问题描述】:

我正在使用 ionic 5 创建一个页面。

我正在使用 <ion-toggle> 制作一个“记住我”按钮。

<ion-item>
    <ion-label>remember me</ion-label>
    <ion-toggle class="button"></ion-toggle>
</ion-item>

Ion-toggle 工作正常,但我无法通过单击它旁边的标签来切换它。

我尝试了很多解决方案。

API 文档的链接是:https://ionicframework.com/docs/api/toggle

有什么方法可以让离子切换和文本都可点击?

我正在使用离子角度

提前致谢

【问题讨论】:

我经历了很多解决方案 - 如果不是其中之一,请至少发布一些。 您可以使用在 ion toggle add #mytoggle 和标签添加属性 (click)="mytoggle.toggle()" 上的工作,也许它不是 .toggle 但肯定有触发它的方法.. 请不要将标签 ionic3 和 ionic4 用于 ionic5,这是有区别的。发布一些代码也会有很大帮助,因为现在 Ionic 变得与框架无关,有不同的方式来使用它。默认情况下切换也不这样做(请参阅链接页面),您必须自己实现它,有点像@MostafaHarb 指出的,但我认为它是通过使用(click)="mytoggle.checked = true" 您链接的文档没有列出您正在尝试做的示例,因此我认为这不可能直接。 添加您的代码示例,然后让我们看看如何提供帮助... 【参考方案1】:

你可以这样做:

将 Ionic id 添加到切换开关,例如 #mytoggle 使用标签的(click) 中的ID 来切换.checked 属性

代码:

<ion-item>
    <ion-label (click)="mytoggle.checked = !mytoggle.checked">remember me</ion-label>
    <ion-toggle #mytoggle class="button"></ion-toggle>
</ion-item>

Try it in stackblitz

【讨论】:

【参考方案2】:

在 ts 文件中: 声明:

@ViewChild('mytoggle', static: true) mytoggle: IonToggle;

changeToggle() 
    const toggle = this.mytoggle.checked;
    toggle = !toggle;

html 中:

 <ion-item>
            <ion-label (click)="changeToggle()">remember me</ion-label>
            <ion-toggle class="button">
   </ion-toggle>
          </ion-item>

【讨论】:

【参考方案3】:

上述解决方案仅适用于一个切换。如果您有动态 From,则需要以下内容:

TS 文件:

changeToggle(fieldname) 
    const fieldValue = JSON.parse(this.form.get(fieldname).value);
    this.form.controls[fieldname].setValue(!fieldValue);

HTML 文件:

<ion-label (click)="changeToggle(item.name)">item.label:</ion-label>
    <ion-toggle formControlName="item.name"
                (ionChange)="settingsChange($event)">
</ion-toggle>

【讨论】:

以上是关于单击 ion-label 以切换离子切换的主要内容,如果未能解决你的问题,请参考以下文章

如何处理离子切换上的点击功能

离子切换按钮不显示正确的切换 - Ionic 3,Angular 4

如何实现单个离子卡的切换效果?

离子选择切换问题

如何删除离子切换周围的边框

离子切换背景颜色不工作