angular2 Animation mit variablen Stilen

Verwenden von Typescript & Angular 2.0.0-rc.4

Wie kann ich Stileigenschaftswerte aus der Vorlage angeben, damit ich Schaltflächen wiederverwenden kann? Zum Beispiel, wenn ich für jede Schaltfläche eine andere Hintergrundfarbe festlegen möchte, basierend auf einer Eigenschaft, die an die Vorlage gebunden ist. Siehe unte

Nehmen Sie die folgende Komponente an:

import {
  Component,
  OnInit,
  OnDestroy,
  Input,
  style,
  state,
  animate,
  transition,
  trigger
} from '@angular/core';

@Component({
  selector: 'my-toggle-button',
  template: `<div @state="state" (click)="click()">{{bgColor}}</div>`,
  animations: [
    trigger('state', [
      state('inactive', style({
        'color': '#606060'
      })),
      state('active', style({
        'color': '#fff',
        'background-color': '#606060' // I want this to be bgColor
      })),
      transition('inactive <=> active', animate('100ms ease-out'))
    ])
  ]
})

export class ToggleButtonComponent implements OnInit {
  @Input() bgColor: string;
  state: string = 'inactive';
  active: boolean = false;

  ngOnInit() {
    this.state = this.active ? 'active' : 'inactive';
  }

  click() {
    this.active = !this.active;
    this.state = this.active ? 'active' : 'inactive';
  }
}

calling template:

<h1>Animated Directive</h1>
<my-toggle-button [bgColor]="'#f00'"></my-toggle-button>
<my-toggle-button [bgColor]="'#0f0'"></my-toggle-button>
<my-toggle-button [bgColor]="'#00f'"></my-toggle-button>

http: //plnkr.co/edit/KBO2pgS8B0lSAPLIf0Js? p = preview

Antworten auf die Frage(6)

Ihre Antwort auf die Frage