2017-05-20 2 views
1

Dans l'angle 2, j'essaie d'utiliser @angular/animations pour créer un composant où un élément <li> suit la souris (ondrag) et reste en position après (ondragend). Je suis assez nouveau à angulaire et très perdu sur ce que la meilleure façon de s'attaquer à ce problème est. Je voudrais pouvoir injecter une chaîne de mon composant dans les animations mais je ne suis pas sûr si c'est possible. Voir un exemple ci-dessous.Injection de données à partir de fonctions de composant dans des animations Angular2

import { Component } from '@angular/core'; 

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

@Component({ 
    selector: 'test-test', 
    template: ` 
    <li 
    *ngFor="let letter of list" 
    [@lettereState]="letter.state" 
    (ondrag)="letter.toggleState(); mouseCords($event.clientX, $event.clientY);" 
    (ondragend)="letter.toggleState()"> 
     {{letter}} 
    </li> `, 
    animations: [ 
    trigger('letterState', [ 
     state('active', style({ 
     transform: //'translate(Inject the cordinates here {mouseX}, {mouseY})', 
     })), 
    ]) 
    ], 

}) 
export class LetterBankComponent { 

    constructor(
) {} 

    private list = ['a', 'b', 'c'] 
    private mouseX = '' 
    private mouseY = '' 
    } 
    mouseCords(x, y) { 
     mouseX = x; 
     mouseY = y; 
    } 
+1

voir ici: https://github.com/angular/angular/issues/9668 – Und3rTow

+0

Vous pourriez trouver ceci une montre intéressante https: // www.youtube.com/watch?v=Oh9wj-1p2BM Ironiquement intitulé Animation en angle 4.0.0 et fait tragiquement plusieurs références à "coming in 4.1". Alors peut-être 4,2? Autour de la marque de 6 minutes, la discussion commence à discuter des "variables d'entrée". –

+0

Merci pour cela, je suppose que je dois attendre. Cependant, sur un coup de tête, j'ai ajouté un '[draggable]' à l'un de mes divs et cela fonctionne presque comme prévu. –

Répondre

0

En ce qui concerne l'injection des données dans les animations, il est une demande de fonctionnalité et à venir peut-être (voir https://github.com/angular/angular/issues/9668). En termes d'avoir un élément draggable ajoutant [draggable] à un élément semble résoudre ce problème