Beim Ausführen von Karma zum Testen meiner Angular4-Anwendung wird dieser Fehler angezeigt, Found the synthetic property @enterAnimation. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.
obwohl ich das Modul bereits in app.module.ts importiert habe
// animation module
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
...
@NgModule({
imports: [...
BrowserAnimationsModule,
...
],
und in meiner Komponente :
import { Component, OnInit } from '@angular/core';
import {
trigger,
state,
style,
animate,
transition
} from '@angular/animations';
@Component({
selector: 'app-about',
animations: [
trigger(
'enterAnimation', [
transition(':enter', [
style({ transform: 'translateX(100%)', opacity: 0 }),
animate('500ms', style({ transform: 'translateX(0)', opacity: 1 }))
]),
transition(':leave', [
style({ transform: 'translateX(0)', opacity: 1 }),
animate('500ms', style({ transform: 'translateX(100%)', opacity: 0 }))
])
]
),
trigger(
'enterAnimationVetically', [
transition(':enter', [
style({ transform: 'translateY(100%)', opacity: 0 }),
animate('500ms', style({ transform: 'translateY(0)', opacity: 1 }))
]),
transition(':leave', [
style({ transform: 'translateY(0)', opacity: 1 }),
animate('500ms', style({ transform: 'translateY(100%)', opacity: 0 }))
])]
)
],
...
Die Anwendung läuft noch perfekt mit ng serve
, ich habe diesen Fehler mit Karma bekommen.
BrowserAnimationsModule
.Ich habe die Lösung gefunden. Ich musste nur im
app.component.spec.ts
selben Import importieren// animation module import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; ... @NgModule({ imports: [... BrowserAnimationsModule, ... ],
quelle
animations: [ <yourAnimationMethod()> ]
auf Ihrer @Component zu platzieren (nur wenn Sie[@yourAnimationMethod]
auf der HTML-Vorlage verwenden)Für meine Angular 6-Anwendung habe ich das Problem behoben, indem ich meiner Komponentendatei .spec.ts Folgendes hinzugefügt habe :
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
Fügen Sie dann die
BrowserAnimationsModule
zu den Importen derTestBed.configureTestingModule
in derselben Komponente .spec.ts- Datei hinzubeforeEach(async(() => { TestBed.configureTestingModule({ declarations: [ LinkedSitesComponent ], imports: [ BrowserAnimationsModule ], }) .compileComponents(); }));
quelle
Für Angular 7 und frühere Versionen müssen Sie diese Zeile nur in Ihre
app.module.ts
Datei einfügen. Denken Sie daran, sie auch in die Import-Array-Module in derselben Datei einzufügen:import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
quelle
Das sollte funktionieren.
1- Importieren Sie BrowserAnimationsModule in app.module.ts
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
2 - Zu den Importen in app.module.ts hinzufügen
quelle
Wenn Sie diesen Fehler während
NoopAnimationsModule
des Komponententests sehen, können Sie ein Dienstprogrammmodul wie in Ihre Spezifikationsdatei importieren, das die eigentliche Animation verspottet und nicht wirklich animiertimport { NoopAnimationsModule } from '@angular/platform-browser/animations';
quelle
Für meinen Fall habe ich diese Zeile nur zu meiner Komponente hinzugefügt (users-component.ts).
@Component({ animations: [appModuleAnimation()], })
Stellen Sie natürlich sicher, dass Sie das entsprechende Modul in app.component.ts importiert haben oder wo Sie Ihre Module importieren
// animation module import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; @NgModule({ imports: [ BrowserAnimationsModule, ], })
quelle
Wenn Sie diesen Fehler in Gesicht
Storybook
, dann importiere diesBrowserAnimationsModule
zumoduleMetadata
in Ihrer Geschichte.So was,
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; export const Primary = () => ({ template: ` <div style="width: 720px"> <view-list [data]="data"></view-list> </div> `, moduleMetadata: { imports: [AppModule, BrowserAnimationsModule], }, props: { data: SOME_DATA_CONSTANT, }, });
PS: Für Angular funktionieren die oben genannten Antworten gut!
quelle