Material Design中的Slide Toggle没有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也是如此。我需要用户在更改页面上的其他值之前保存更改,因为“业务需求”。
只是将“已检查”的值改回原来的样子,正确的做法是什么?有一个更好的方法吗?
“在更改页面上的其他值之前,我需要用户保存更改”
我知道这不是主题,但这与您的“业务要求”有关如果您说用户必须按一个单独的按钮才能确认mat-slide-toggle的值,那么您不应该使用垫子-slide拨动。你应该使用一个复选框。
mat-slide-toggles适用于一次性操作,打开或关闭灯,而不是询问您是否要打开或关闭灯。这是一个动作,而不是一个问题。
复选框更适合问题。