禁用点击愤怒线上的值更改 Angular Material

disable value change on click rage line Angular Material

是否可以在触发时禁用范围线上的点击事件? 我找不到任何解决方案。

Slide Example

我假设您想在滑块滑块上保留点击事件?

参见forked stackblitz

基本上,您将一些自定义 class 应用到您的滑块(例如 noclick),移除整个滑块上的 pointer-events,并在缩略图上移除它们 re-add只有.

请注意,class 样式放置在全局 styles.css 中 - 这是因为您无法从您的组件“穿透”组件外部到 angular classes(除非你禁用封装,我建议不要这样做)。

代码本身以防 stackblitz 失败:

.noclick {
  pointer-events: none;
}

.noclick .mat-slider-wrapper .mat-slider-thumb-container {
  pointer-events: all;
}

解决方案并不完美,因为单击滑块轨道不会聚焦组件。我认为您可以尝试解决它 - 例如使用 @ViewChild 获取滑块的实例,访问滑块的私有属性以拦截点击事件,检查它是否起源于轨道或拇指,将其加入可观察到的变化并使用它而不是原始的变化事件。但这对我的品味来说似乎太老套了,老实说,我个人会创建具有所需行为的自定义滑块组件。