Angular 2 запускает анимацию

Следуя этой документации здесь, я пытаюсь добавить анимацию в свои приложения. но у меня есть некоторые проблемы, чтобы понять триггер анимации.

HTML-компонент

<div class="navbar navbar-default navbar-fixed-top">
    <ul class="nav navbar-nav">
        <li>
            <span (click)="open()" class="glyphicons glyphicons-show-lines">open</span>
        </li>
    </ul>
</div>
<div class="vertical-menu" @verticalOpen="openOrClose">
    <div class="list-group table-of-contents">
        <a class="list-group-item" [routerLink]="['/login']" routerLinkActive="active">Login</a>
        <a class="list-group-item" [routerLink]="['/personalArea routerLinkActive="active">Personal Area</a>
    </div>
</div>

ts-файл

@Component({
   selector:'menu-bar',
   templateUrl:'app/components/menubar/menubar.component.html',
   styleUrls:['app/components/menubar/menubar.component.css'],
   directives:[ROUTER_DIRECTIVES],
   animations:[
       trigger('verticalOpen',[
           state('inactive',style({
               left: '-115px',
               transform:'scale(1)',
               backgroundColor:'red'
           })),
           state('active',style({
               left: '0px',
               transform:'scale(1.3)'
           })),
           transition('active => inactive', animate('100ms ease-in')),
           transition('inactive => active', animate('100ms ease-out'))
       ])
   ]
})
export class MenuBar{
    closeOrOpen:string;
    open(){
        if(this.closeOrOpen=='inactive'){
            this.closeOrOpen='active'
        }
        else if(this.closeOrOpen=='active'){
            this.closeOrOpen='inactive'    
        }
        else{
            this.closeOrOpen='inactive'
        }
        console.log(this.closeOrOpen)
    }
}

поэтому я пытаюсь вызвать изменение стиля с помощью кнопки, но когда я нажимаю, ничего не меняется. Я смотрю на код ошибок нет, это правда? Что я пропустил?


person mautrok    schedule 12.07.2016    source источник


Ответы (1)


В вашем шаблоне есть:

@verticalOpen="openOrClose" 

Таким образом, в вашем открытом методе вам нужно переключать свойство openOrClose, а не closeOrOpen.

person knikolov    schedule 12.07.2016