Material 设计中的“幻灯片切换”没有stopPropagation事件,因为“MdSlideToggle.prototype._onChangeEvent”已经调用了stopPropagation。我应该使用什么呢?

<md-slide-toggle (change)="changeToggle($event, activityType.isActive)" checked="activityType.isActive" value="activityType.activityTypeId" mdTooltip="{{!!activityType.isActive ? 'Active' : 'Inactive'}}" mdTooltipPosition="left"></md-slide-toggle>


public changeToggle(event: MdSlideToggleChange, originalValue){
    if (this.hasChange && event.checked !== originalValue){
        event.stopPropagation();
        //Results in error: [ts] Property 'stopPropagation' does not exist on type 'MdSlideToggleChange'.
    } else {
        this.hasChange = !this.hasChange;
    }
}

我可以使用常规事件,但是会出现一个异常,说“event.stopPropagation不是函数”。

目前,我将该行更改为:
event.source.checked = !event.checked;

event.preventDefault也是如此。我需要要求用户保存更改,然后再更改页面上的另一个值,因为“业务需求”。

只是将“checked”的值更改回原来的值,这是正确的做法吗?有一个更好的方法吗?

最佳答案



我知道这不是主题,但这与您的“业务需求”有关
如果您说用户必须按下一个单独的按钮才能确认mat-slide-toggle的值,那么您不应该使用mat-slide-toggle。
您应该使用一个复选框。

mat-slide-toggles适用于1次关闭 Action ,可以打开或关闭灯光,而不用问是否要打开或关闭灯光。
这是一个行动,而不是一个问题。

复选框更适合于问题。

关于javascript - Material Design Slide Toggle没有event.StopPropagation,我应该使用什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43239052/

10-13 06:37