Angular UI を使用して、小さなデータベース エントリをアコーディオンでレンダリングしています。最初の試行では、ブートストラップを使用しましたが、AngularJS ビューを統合したため、アコーディオンが完全に機能しなくなりました (空の href...)。次に、ブートストラップ アコーディオンを angular UI ブートストラップ 1 とデフォルト テンプレートに置き換えました。
私の問題は、ブートストラップ バージョンで、アコーディオンのタイトルに応じて見出しをスタイル化できたことです (ng-repeat ディレクティブと見出し内の ng-style を使用していました)。Angular UI で同じことをしようとしましたが、カスタム クラスでさえレンダリングされません。
このサンプル コードは、bootstrap では問題なく機能していましたが、ui.boostrap アコーディオンでは機能しなくなりました。
accordion-group.accordion-groupLog(ng-repeat="item in data.entries | filter:search")
accordion-heading.accordion-headingLog(ng-style="{backgroundColor: styles[item.importance-1].bkcolor, color: styles[item.importance-1].color}")
{{item.title}} ({{item.importance}})
ここでの目標は、項目フィールドに基づいて異なるスタイル (背景色とテキスト色) を適用することです。さらに、クラス accordion-headingLog は、アコーディオンのデフォルト サイズをリサイズします。
レンダリングされたコードは次のとおりです。
<div class="accordion-groupLog accordion-group ng-scope" ng-repeat="item in data.entries | filter:search">
<div class="accordion-heading">
<a class="accordion-toggle ng-binding" ng-click="isOpen = !isOpen" accordion-transclude="heading">
......
そして、私は次のようなものを期待していました:
<div class="accordion-groupLog accordion-group ng-scope" ng-repeat="item in data.entries | filter:search">
<div ng-style="{backgroundColor: styles[item.importance-1].bkcolor}" class="accordion-heading accordion-headingLog" style="background-color: rgb(214, 24, 40);">
[編集] ng-class 属性で accordion-headingLog クラスを配置しようとしましたが、どちらも機能しません。テストのために、アコーディオンのボディ内にクラスとスタイルを適用しようとしましたが、うまくいきました。accordionHeading ディレクティブはクラスまたは属性を受け入れないと結論付けますか? 見出しにスタイルを動的に適用する方法???
[編集] もう 1 つの試みは、独自のテンプレートを作成することでした。accordion-headingLog クラスを見出しに適用できますが、カスタマイズ可能なスタイルを設定するにはどうすればよいですか? ng-style を使用して固定スタイルを適用しようとしましたが、うまくいきません。
script(type="text/ng-template", id="template/accordion/accordion-group.html").
div.accordion-group
div.accordion-heading.accordion-headingLog(ng-style="{background-color: #123456")
a.accordion-toggle(ng-click="isOpen = !isOpen", accordion-transclude="heading") {{heading}}
div.accordion-body(collapse="!isOpen")
div.accordion-inner(ng-transclude)