停止角度切换开关上的传播

本文关键字:开关 传播 | 更新日期: 2023-09-27 18:36:00

我对角度切换开关有问题:

我有表格。如果此表单已被修改且未保存,则当我单击链接时,它会显示"#enregistrementModal"模式。

模 态:

<div class="modal-body">
    Please save your informations before continue.
    <button type="button" data-dismiss="modal">×</button>
</div>

目录 :

<a id="popoverDeleting" data-toggle="modal" data-target="#closingModal">Supprimer mon compte</a>

Javascript :

$('#popoverDeleting').on('click', function (event) {
    if (vm.isLocked == false && $('#submitDonneeForm').prop("disabled") == false) {
        $('#enregistrementModal').modal();
        event.preventDefault();
        event.stopPropagation();
        return;
    }
 })

我的问题 :

当我单击切换开关时,我无法恢复 javascript 上的$event。然后我无法停止传播,无论如何它都会从真切换到假。

切换开关 :

<toggle-switch id="toggleMail" model="vm.isMailChecked" on-change="vm.saveCanalMail()" on-label="Oui" off-label="Non"></toggle-switch>

我该怎么做才能停止切换开关的传播并在之前显示我的模态?

提前谢谢你。

停止角度切换开关上的传播

不要使用

Javascript 点击处理程序,而是使用 ng-click 指令。使用它,您可以将$event作为参数传递:

vm.clickHandler = function clickHandler(event) {
    if (vm.isLocked == false && $('#submitDonneeForm').prop("disabled") == false) {
        $('#enregistrementModal').modal();
        event.preventDefault();
        event.stopPropagation();
    }

并在您的 HTML 中:

<toggle-switch id="toggleMail" model="vm.isMailChecked" ng-click="vm.clickHandler($event)" ng-change="vm.saveCanalMail()" on-label="Oui" off-label="Non"></toggle-switch>