2015-12-09 2 views
0

J'ajoute dynamiquement de nouvelles sections d'accordéon à mon accordéon UIKit data-uk, en utilisant ng-repeat.L'accordéon UIKit et la répétition ng ne fonctionnent pas

<div class="uk-accordion" data-uk-accordion="{ collapse: false }"> 
    <h3 class="uk-accordion-title uk-active" ng-repeat-start="driver in drivers">Driver {{driver.id}}</h3> 
    <div class="uk-accordion-content" ng-repeat-end> 
    ... 
</div> 

Quand j'ajouter de nouvelles sections d'accordéon et je clique sur le titre pour réduire, je reçois l'erreur suivante:

TypeError: emballage est non défini, sur la ligne 73 de accordion.js UIKit 2,24 .2: wrapper.data('toggle').toggleClass(this.options.clsactive);

J'ai essayé d'ajouter data-uk-observe à la div accordéon, ou ses parents, mais divs n'a pas eu d'effet, et a aussi essayé de reinit l'accordéon manuellement en ajoutant un identifiant, et en cours d'exécution UIkit.accordion ('#drivers') de la console mais pas de changement.

Même tenté d'exécuter UIkit.init() à partir de la console, mais je reçois la même erreur.

Des idées pour réinjecter l'accordéon?

+0

Vous devez initialiser manuellement l'accordéon avec UIkit.accordion ($ ('# elementID'), {option: 'value'}); Omettez l'attribut data-uk-accordéion pour empêcher le démarrage du composant. – ZeGregg

+0

Cela ressemble à un doublon de http://stackoverflow.com/questions/33731080/how-to-correctly-append-dynamic-getuikit-accordions. – codermonkeyfuel

Répondre

0

Il ressemble à ce que vous voulez faire est:

  • Omettre l'attribut data-uk-accordion. Enregistrez l'objet renvoyé par l'appel UIkit.accordion(element, options).
  • Après l'ajout de nouveaux éléments enfant accordéon, appelez accordion.update(). (En supposant que vous avez enregistré l'objet retourné ci-dessus dans une variable appelée accordion)

Pour plus d'informations sur la façon dont je suis arrivé à ce, consultez the related issue on GitHub.