J'ai un bouton comme défini ci-dessous.Bouton de re-basculement de Bootstrap après que Ember l'ait déjà basculé lors du re-rendu
<button type="button"
class="btn btn-primary-outline {{if shouldBeActive "active"}}"
data-toggle="button"
{{action "makeActive"}}>MyButton</button>
L'action makeActive
permet de basculer la propriété shouldBeActive
, ce qui provoque le bouton pour gagner ou perdre la classe .active
quand Ember re-rend le modèle.
Tout cela est une grande ... sauf que les bootstrap.js cliquez sur Gestionnaire pour basculer .active
classe du bouton est alors Déclenché après l'Ember a mis à jour le DOM, ce qui provoque le bouton pour être basculée dans l'état basculée incorrect.
Existe-t-il un moyen éloquent pour résoudre ce problème? Ma seule pensée est que je pouvais faire quelque chose de stupide comme ...
<button type="button"
class="btn btn-primary-outline {{if (xor shouldBeActive isFirstRender) "active"}}"
data-toggle="button"
{{action "makeActive"}}>MyButton</button>
... pour régler efficacement l'état actif à l'opposé de ce qui est prévu et laissez-bootstrap bascule à ce qui est approprié.
Vous devez décider de ce qui doit gérer ce clic. Pourquoi avez-vous besoin d'un gestionnaire de clic Bootstrap? Si vous avez un gestionnaire de clics Bootstrap, pourquoi en avez-vous besoin d'un autre dans Ember pour basculer la propriété? On dirait que vous devez décider et déplacer toute la logique à 1 gestionnaire. –
@DanielKmak Je n'ai aucun contrôle sur le gestionnaire de clic Bootstrap; il existe dans bootstrap.js. Bootstrap.js est nécessaire pour que d'autres composants bootstrap fonctionnent, donc il n'y a pas d'évitement, y compris ce fichier js. – kjb
Que faire si vous supprimez: 'data-toggle =" le bouton "'? –