我一直在尝试用顺风手风琴展示一系列帖子,但它没有按预期工作。创建帖子时,手风琴将显示标题,但不会展开以显示帖子的内容。我还更改了 data-accordion-target 的属性,以使用“ngfor:index as i”动态定位正文。另外,我不确定在哪里放置结构指令,因为它有点显示两个单独的手风琴。
<div id="accordion-collapse" data-accordion="collapse">
<div *ngFor="let post of posts; index as i">
<h2 id="accordion-collapse-heading-1">
<button type="button"
class="flex items-center justify-between w-full p-5 font-medium rtl:text-right text-gray-500 border border-b-0 border-gray-200 rounded-t-xl focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-800 dark:border-gray-700 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 gap-3"
attr.data-accordion-target="#accordion-collapse-body-{{i}}" aria-expanded="true"
attr.aria-controls="accordion-collapse-body-{{i}}">
<span>{{post.title}}</span>
<svg data-accordion-icon class="w-3 h-3 rotate-180 shrink-0" aria-hidden="true"
xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M9 5 5 1 1 5" />
</svg>
</button>
</h2>
<div id="accordion-collapse-body-{{i}}" class="hidden" attr.aria-labelledby="accordion-collapse-heading-{{i}}">
<div class="p-5 border border-b-0 border-gray-200 dark:border-gray-700 dark:bg-gray-900">
<p class="mb-2 text-gray-500 dark:text-gray-400">{{post.content}}</p>
</div>
</div>
</div>
</div>
你的模板看起来不错,手风琴也适合我。
您是否安装并配置了手风琴所需的 Flowbite js 库?
安装 Flowbite:
npm install flowbite
更新您的 Tailwind 配置以包含 Flowbite:
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./src/**/*.{html,ts}",
"./node_modules/flowbite/**/*.js" // 1. add this line
],
theme: {
extend: {},
},
plugins: [
require('flowbite/plugin') // 2. add this line
],
}
在组件中初始化 Flowbite:
import { Component } from '@angular/core';
import { OnInit } from '@angular/core';
import { initFlowbite } from 'flowbite';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'web-app';
ngOnInit(): void {
initFlowbite();
}
}