【问题标题】:How to use Angular Material without HammerJS如何在没有 HammerJS 的情况下使用 Angular Material
【发布时间】:2019-11-13 19:49:37
【问题描述】:

在没有 Hammerjs 的情况下使用 Angular Material 的正确方法是什么?

我不想要 HammerJS。当我将鼠标拖到材质选项卡组内(即使在 HTML INPUT 控件内)时,它会产生奇怪的行为(切换到另一个选项卡),我绝对不想要这种行为。我无法选择选项卡组中显示的任何文本。

如果我不包含hammerjs,Angular 每次都会抱怨。我认为在控制台中留下警告消息不是一个好习惯。

【问题讨论】:

    标签: angular angular-material hammer.js


    【解决方案1】:

    文档很清楚。

    某些组件需要HammerJS

    https://material.angular.io/guide/getting-started

    “一些组件(mat-slide-toggle、mat-slider、matTooltip)依赖于 HammerJS 来进行手势操作。为了获得这些组件的完整功能集,HammerJS 必须加载到应用程序。”

    更新 - 从 Angular 9 开始,hammerJS 是可选的

    【讨论】:

    • 或者这样说。我如何禁用它,换句话说,使它不起作用?据我了解,hammerjs 正在将鼠标事件转换为手指事件,但它干扰了我的正常鼠标事件。
    • 看起来这是hammerjs github.com/hammerjs/hammer.js/issues/1048 的未解决问题可能有某种方法使用provide 来防止触发指针事件,但这超出了我的能力
    • @alex 出于好奇,在这里使用答案有帮助吗? stackoverflow.com/a/49020106/4711754
    • 我试过但很尴尬地发现我无法重现该问题。我实施了更改,鼠标不再滚动我的标签。好的。然后我删除更改,鼠标仍然没有干扰我的材质选项卡。我不明白为什么,因为我最近肯定经历过鼠标移动滚动的标签,甚至在升级到 Angular 8 之后也是如此。
    【解决方案2】:

    从 Angular Material v12 开始,HammerJS 不是必需的,甚至在 Getting Started guide 中也没有提及。

    【讨论】:

      猜你喜欢
      • 2018-07-08
      • 2019-07-23
      • 2021-05-14
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      相关资源
      最近更新 更多