2015-02-26 4 views
0

dans Ember Table, j'ai besoin de changer le style d'une cellule avec le changement de contenu cellulaire particulier. Je dois ajouter la couleur à la cellule avec la mise à jour de valeur (que j'ai déjà fait) et enlèvent des modèles après 1 seconde (que je veux faire).Comment appliquer la fonctionnalité 'Blink' dans la table Ember?

J'ai appelé setTimeout lors de l'application de la couleur et de la couleur supprimée au sein de setTimeout. Ça ne marche pas tout le temps. certaines couleurs de cellule ne sont pas supprimées. (cela devient pire lors du défilement). Je suppose qu'après 1 seconde, Ember ne peut pas trouver l'élément cellulaire particulier.

J'utilise et composant de table Ember et affecté un contentBinding et columnBinding. J'ai ajouté un modèle pour le composant Ember.Table.TableCell et ajouté des noms de classe.

Répondre

0

Je ne peux pas garantir que cela répondra à votre question, mais voici un tas de choses qui me sautent à l'esprit en lisant ce code. Je pense qu'ils sont mieux formatés comme une «réponse».

  1. Vous devez éviter les effets secondaires, comme appeler setTimeout, dans une propriété calculée. Les propriétés calculées dans Ember sont paresseuses, donc elles ne se mettent à jour que lorsque leur valeur est nécessaire. Envisagez d'utiliser un Observer, ou juste une fonction, dans des cas comme celui-ci. C'est presque certainement lié à votre problème.

  2. Au lieu de setTimeout, utilisez Ember.run.later ou des fonctions Ember similaires. Cela garantira que votre code respecte la boucle d'exécution Ember. La propriété calculée customColor ne dépend pas de previousColumnValue, même si elle l'utilise. Ceci est lié à la discussion sur les effets secondaires: vous devriez essayer de réorganiser votre code si possible.

En plus de cela, vous avez beaucoup d'idées. Je suis assez sûr que cela peut être fait avec Ember Table - le AJAX example est un exemple de cellules de la table Ember traitant de l'asynchronie.

Je recommande le débogage en essayant d'abord de créer un exemple minimal dans JS Bin, en utilisant le Ember Table starter kit. Ce sera également utile si vous souhaitez plus d'aide - il est facile pour les gens comme moi de jouer avec votre configuration jusqu'à ce que cela fonctionne.

+0

J'ai posté mon exemple et de nouveaux problèmes rencontrés ici. http://stackoverflow.com/questions/29071528/add-blink-feature-in-ember-table – Arosha