Ik werk aan een eenvoudig hoekig project waarbij ik Material Design in mijn project probeer te importeren, maar sommige componenten werken niet goed en een consolewaarschuwing zegt:
Kon HammerJS niet vinden. Bepaalde Angular Material-componenten werken mogelijk niet correct.
Ik heb hammerjs
geïnstalleerd en ook @angular/material
. Hoe los ik dit probleem op?
Kanttekening
Het is misschien de moeite waard om op te merken dat als je hammerjs
hebt geïnstalleerd en je componenten nog steeds niet correct worden weergegeven, om er zeker van te zijn dat je angular material
componentenen niet html-elementen met materialize-css
klassen.
Als u gebruiktmaterialize-css
in plaats van angular material
, je moet het apart aan je project toevoegen.
Antwoord 1, autoriteit 100%
Voeg dit in uw package.json
-bestand toe aan dependencies
“hammerjs”: “^2.0.8”,
Of als je een alternatieve automatische manier wilt, typ je gewoon npm i hammerjs --save
(of npm i [email protected] --save
als je wilt , aangezien 2.0.8
tegenwoordig de nieuwste versie is) in je hoofdprojectmapen test dan, als het probleem zich blijft voordoen, probeer de node_modules
map en installeer deze opnieuw in de hoofdprojectmapdoor npm install
uit te voeren, waarmee de dependencies
worden gecontroleerd (waar hammerjs
resides), devDependencies
…, in het bestand package.json
en installeer ze.
Ook in je polyfills.ts
(aanbevolen om er een te hebben als je die nog niet hebt)
import ‘hammerjs/hammer’;
Het zou dus worden gevonden terwijl uw hoekige app wordt uitgevoerd, aangezien polyfills.ts
zelf wordt aangeroepen door import (in een normaal geval, anders kunt u het controleren)in main.ts
wat het beginpunt van de hoekige apps is.
Antwoord 2, autoriteit 63%
Installeer hammerjs
-
met npm
npm install --save hammerjs
-
(of) met garen
yarn add hammerjs
Importeer vervolgens hammerjs
op het toegangspunt van uw app (bijv. src/main.ts).
import 'hammerjs';
Antwoord 3, autoriteit 5%
In uw systemjs.config.js
-bestand moet u ook het volgende item toevoegen:
'hammerjs': 'npm:hammerjs/hammer.js',
samen met natuurlijk:
'@angular/material': 'npm:@angular/material/bundles/material.umd.js',
Het andere dat ontbreekt in uw code (tenminste gebaseerd op wat u in de GH-repo hebt) is de opname van de Material Design CSS, voeg dit toe aan uw index.html
-bestand:
<link href="https://rawgit.com/angular/material2-builds/master/core/theming/prebuilt/indigo-pink.css" rel="stylesheet">
Ik hoop dat dit helpt.
Antwoord 4, autoriteit 4%
dit werkte voor mij (en dit is ook met ionic4)
Ik zou hammer.js kunnen laten werken – en ook ionisch met material.angular.io (onderaan)
Hamer + ionisch (ook hamer + hoekig):
npm install --save hammerjs
npm install --save @types/hammerjs
dan
package.json
make sure in dependencies there is this line
"hammerjs": "^2.0.8",
dan
tsconfig.json - added types as seen below
"compilerOptions": {
...
...
"types": [
"hammerjs"
]
}
dan
in app.component.ts (only there)
import 'hammerjs';
dan
in html file (I just took out the first and last < > signs)
div id="myElement"></div
in .ts file
Voorbeeldcode van de site van hammerjs
let element2 = document.getElementById('myElement');
let hamming = new Hammer(element2);
hamming.on("panleft panright tap press pressup", function(ev) {
element2.textContent = ev.type +" gesture detected.";
console.log(ev.type +" gesture detected.");
});
Hamer+ionisch+materiaal:
om materiaalhamer met ionisch te laten werken
in app.module
import { HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
import { GestureConfig } from '@angular/material';
providers: [
{ provide: HAMMER_GESTURE_CONFIG, useClass: GestureConfig },
]
en voila, je materiële slider werkt.
Antwoord 5, autoriteit 2%
Open je opdrachtregel of powershell, typ de map van je angular2-project: cd your-project's-root
, druk op enter en plak:
npm install hammerjs --save
Npm voegt automatisch alle afhankelijkheden toe aan uw package.json
-bestand.
Antwoord 6
Installeer met
npm install --save hammerjs
of
yarn add hammerjs
Importeer het na de installatie op het toegangspunt van uw app (bijv. src/main.ts).
import 'hammerjs';
Aan de slag-gids voor hoekmateriaal
Antwoord 7
- npm install hammerjs –save
- npm install @types/hammerjs –save-dev
-
voeg dit toe aan typescript.config onder compileropties
“soorten”: [
“hamer”
] -
voeg dit toe aan app.components.ts:
Antwoord 8
Vanaf Angular 9 moet u HammerModule
toevoegen aan de imports
-array van uw AppModule
. Zoek het onderstaande voorbeeld:
...
import {
BrowserModule,
TransferState,
BrowserTransferStateModule,
HammerModule, // <-- Hammer Module
} from '@angular/platform-browser';
...
@NgModule({
declarations: [
AppComponent,
],
imports: [
HttpClientModule,
AppRoutingModule,
HammerModule, // <-- Hammer Module
],
bootstrap: [AppComponent],
})
export class AppModule { }
Vergeet niet om npm install
of yarn add
uit te voeren om hammerjs aan je project toe te voegen. Voor een gemakkelijkere manier is het beter om @types/hammerjs
Antwoord 9
Behalve door hammerJS afzonderlijk te importeren, kunnen we deze functie voor gebarenherkenning aan ja bieden tijdens het installeren van de bibliotheek met hoekig materiaal (versie 8) met de volgende opdracht.
npm add @angular/material
Set up HammerJS for gesture recognition?-Yes
Controleer of de ‘hammerjs’ is geïmporteerd in het main.ts-bestand