为什么我的路线动画在Angular2中不起作用?

为什么我的路线动画在Angular2中不起作用?,angular,animation,angular2-routing,angular-animations,Angular,Animation,Angular2 Routing,Angular Animations,App.module: import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HttpModule } from "@angular/http"; import { BrowserAnimationsModule} from '@angula

App.module:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from "@angular/http";
import { BrowserAnimationsModule} from '@angular/platform-browser/animations';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { CreateComplaintComponent } from './create-complaint/create-complaint.component';
import { ComplaintService } from './Complaints/ComplaintService';
import { NcrToasterService } from './toaster/NcrToasterService';
import { ToasterModule } from 'angular2-toaster';
import { ComplaintOverviewComponent } from './complaint-overview/complaint-overview.component';

@NgModule({
  declarations: [
    AppComponent,
    CreateComplaintComponent,
    ComplaintOverviewComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    FormsModule, 
    HttpModule,
    BrowserAnimationsModule,
    ToasterModule
  ],
  providers: [
    ComplaintService,
    NcrToasterService
  ],
  bootstrap: [AppComponent]
})

export class AppModule { }
路由模块:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { CreateComplaintComponent } from './create-complaint/create-complaint.component';
import { ComplaintOverviewComponent } from './complaint-overview/complaint-overview.component';

const routes: Routes = [
    {
        path: 'create',
        component: CreateComplaintComponent
    },
    {
        path: 'overview',
        component: ComplaintOverviewComponent
    },
    {
        path: '',
        redirectTo: '/create',
        pathMatch: 'full'
    },
];

@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
创建投诉组件:

    import { Injectable, animate, transition, trigger, state, style, HostBinding } from '@angular/core';
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { Complaint, ComplaintType } from '../Complaints/Complaint';
import { ComplaintService} from '../Complaints/ComplaintService';
import { NcrToasterService } from '../toaster/NcrToasterService';
import { ToasterConfig } from 'angular2-toaster';
import { Router } from '@angular/router';
import { fadeInAnimation } from "../animations";

@Component({
    moduleId: module.id.toString(),
selector: 'app-create-complaint',
templateUrl: './create-complaint.component.html',
styleUrls: ['./create-complaint.component.less'],
encapsulation: ViewEncapsulation.None,
animations: [fadeInAnimation],
})

export class CreateComplaintComponent {
    @HostBinding('@fadeInAnimation')fadeInAnimation=true;
    private complaint: Complaint;
    private ComplaintType: typeof ComplaintType = ComplaintType;
    private ToasterConfig : ToasterConfig;

    constructor(private complaintService: ComplaintService,
                private toaster : NcrToasterService,
                private router: Router) {
        this.complaint = new Complaint();      
    }
}
动画.ts

import { animate, AnimationEntryMetadata, state, style, transition, trigger } from '@angular/core';

export const fadeInAnimation =
// trigger name for attaching this animation to an element using the [@triggerName] syntax
trigger('fadeInAnimation', [

    // route 'enter' transition
    transition(':enter', [

        // css styles at start of transition
        style({ opacity: 0 }),

        // animation and styles at end of transition
        animate('5s', style({ opacity: 1 }))
    ]),
]);
我想在显示组件时添加动画(淡入)。我看到我的路由正在工作,但它不会消失。我已经将动画时间设置为5秒,但是我的组件会立即加载,忽略整个事务

我错过了什么


我正在使用Angular 4,使用Angular cli。

尝试在投诉组件中更换:

@HostBinding('@fadeInAnimation') fadeInAnimation = true;

在组件定义中


我用你的代码做了一个示例项目,这对我很有用。

我已经尝试过了,但没有成功。你有一个扑克牌什么的吗?
host: { '[@fadeInAnimation]': '' }