我想在我的 Angular 应用程序中使用 hammer.js。我确实成功安装了jquery,但是我对所有这些都不熟悉,我真的不知道如何进行更复杂的事情,需要在其上设置选项。我坚持要得到一个 hammerjs 对象,我可以在制作后对其进行操作。根据文档,建议在初始化后设置选项。
这是我到目前为止所做的:
我用 npm 安装了 hammerjs 和 hammer-timejs。
我以这种方式导入到我的组件中:
import 'hammerjs';
import 'hammer-timejs';
一些索引.html显示我尝试将锤子附加到什么:
<body>
<div id="main">
<app-root></app-root>
</div>
</body>
我只是按照文档所说的安装和设置选项吗?喜欢这个?
let hammertime = new Hammer(
document.getElementById('main')
);
hammertime.get('swipe').set({ threshold: 100 });
我必须在 ngOnInit 或其他钩子之一中执行此操作吗?
如果我想为整个应用程序安装 hammer.js,如何定义 myElement?只是普通的JS?
document.getElementById('main')
还是有更好的角度方法?
Angular 应用程序只对自身或子元素进行操作。
组件元素本身可以用ElementRef
来寻址:
private hammerManager;
constructor(private elementRef: ElementRef) {}
ngOnInit() {
this.hammerManager = new Hammer(this.elementRef.nativeElement);
this.hammerManager.get('swipe').set({ threshold: 100 });
}
ngOnDestroy() {
this.hammerManager.destroy();
}