Reputation: 335
I'm having a problem when I launch my Angular app on my browser. Everything works code speaking but I'm still getting this error:
Found the synthetic property
@routerAnimations
. Please include eitherBrowserAnimationsModule
orNoopAnimationsModule
in your application.
I already checked the posts on this subject and there's quite a lot but all of them answered the same:
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
and include it in the app module's imports.
imports: [
BrowserAnimationsModule,
...
]
That's what I did but still got the same error. I've been looking for hours for this solution. Anyone knows what could fix it ? Thanks
Here's my package.json:
{
"name": "angular-bc",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^4.2.4",
"@angular/common": "^4.2.4",
"@angular/compiler": "^4.2.4",
"@angular/core": "^4.2.4",
"@angular/forms": "^4.2.4",
"@angular/http": "^4.2.4",
"@angular/platform-browser": "^4.2.4",
"@angular/platform-browser-dynamic": "^4.2.4",
"@angular/router": "^4.2.4",
"core-js": "^2.4.1",
"rxjs": "^5.4.2",
"zone.js": "^0.8.14"
},
"devDependencies": {
"@angular/cli": "1.4.3",
"@angular/compiler-cli": "^4.2.4",
"@angular/language-service": "^4.2.4",
"@types/jasmine": "~2.5.53",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"codelyzer": "~3.1.1",
"jasmine-core": "~2.6.2",
"jasmine-spec-reporter": "~4.1.0",
"karma": "~1.7.0",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.2",
"ts-node": "~3.2.0",
"tslint": "~5.3.2",
"typescript": "~2.3.3"
}
}
<div [@routerAnimations]="myOutlet.state">
<router-outlet #myOutlet></router-outlet>
</div>
Upvotes: 28
Views: 64126
Reputation: 31
Angular Material Sidenav doesn't work with the NoopAnimationsModule. If your page has this component on it, you will need to import the BrowserAnimationsModule from '@angular/platform-browser/animations'.
Upvotes: 3
Reputation: 101
In my case I'm using Angular 17 in mode: standalone. To solve the problem a use the flowing script in the main.ts file, based on the link: https://angular.io/guide/animations
bootstrapApplication(AppComponent, {
providers: [
provideAnimations(),
]
});
Hope this script be helpful for someone.
Upvotes: 10
Reputation: 1496
One point is definitely you need to add BrowsersAnimationModule
in your active Module. But apart from that you need to mention animations
for that Synthetic selector (here @routerAnimations
) which is Angular Component Meta
@Component({
selector: 'app-card-grid',
templateUrl: './card-grid.component.html',
styleUrls: ['./card-grid.component.scss'],
animations: [
trigger('routerAnimations', [
state('collapsed', style({ height: '0px', minHeight: '0' })),
state('expanded', style({ height: '*' })),
transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
]),
],
Response in comment if you still have any doubts
Upvotes: 2
Reputation: 713
Adding the lines
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
and
imports: [
BrowserAnimationsModule,
...
]
to app.module.ts
actually solves it
Upvotes: 39
Reputation: 335
I solved the issue, the problem was the "@routerAnimations" in my app.component.html:
<div [@routerAnimations]="myOutlet.state">
<router-outlet #myOutlet></router-outlet>
</div>
When I removed it, everything worked just fine
Upvotes: -12