0

ng-repeat を使用して、新しいアコーディオン セクションを UIKit data-uk-accordion に動的に追加しています。

<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>

新しいアコーディオン セクションを追加し、タイトルをクリックして折りたたむと、次のエラーが発生します。

TypeError: UIkit 2.24.2 の accordion.js の 73 行目でラッパーが未定義です: wrapper.data('toggle').toggleClass(this.options.clsactive);

アコーディオン div またはその親 div に追加しようとしdata-uk-observeましたが、効果はありませんでした。また、ID を追加して手動でアコーディオンを再初期化しようとしましたが、コンソールから UIkit.accordion('#drivers') を実行しましたが、変更はありませんでした.

UIkit.init()コンソールから実行しようとしても、同じエラーが発生します。

アコーディオンを再起動する方法はありますか?

4

1 に答える 1

0

あなたがしたいことは次のようです:

  • 属性を省略しdata-uk-accordionます。
  • の呼び出しから返されたオブジェクトを保存しますUIkit.accordion(element, options)
  • 新しいアコーディオンの子要素が追加されたら、 を呼び出しますaccordion.update()。(上記の返されたオブジェクトを という変数に保存したと仮定しますaccordion)

私がそれに到達した方法の詳細については、GitHub の関連する問題を確認してください。

于 2016-03-11T17:48:00.853 に答える