使用ngFor嵌套循环实现动态列标题和值的HTML th和td标签
P粉949267121
P粉949267121 2023-08-31 15:23:50
[HTML讨论组]
<p>我正在尝试创建带有动态tr和td的HTML表格。 我在HTML中添加了嵌套循环,动态列标题(th)工作正常,但值没有添加到正确的td中。</p> <p>这是我拥有的数据:</p> <pre class="brush:php;toolbar:false;">&quot;finalResult&quot;: [ { &quot;tableNamee&quot;: &quot;Table_1&quot;, &quot;colCategories&quot;: [ { &quot;columnnnn&quot;: &quot;User&quot;, &quot;values&quot;: [ { &quot;value&quot;: &quot;0&quot; }, { &quot;value&quot;: &quot;10&quot; }, { &quot;value&quot;: &quot;60&quot; }, { &quot;value&quot;: &quot;0&quot; }, { &quot;value&quot;: &quot;0&quot; }, { &quot;value&quot;: &quot;0&quot; }, { &quot;value&quot;: &quot;0&quot; }, { &quot;value&quot;: &quot;0&quot; }, { &quot;value&quot;: &quot;0&quot; } ] }, { &quot;columnnnn&quot;: &quot;Header1&quot;, &quot;values&quot;: [ { &quot;value&quot;: &quot;460&quot; } ] }, { &quot;columnnnn&quot;: &quot;Amount&quot;, &quot;values&quot;: [ { &quot;value&quot;: &quot;10&quot; }, { &quot;value&quot;: &quot;100&quot; }, { &quot;value&quot;: &quot;50&quot; } ] } ] }, { &quot;tableNamee&quot;: &quot;Table_2&quot;, &quot;colCategories&quot;: [ { &quot;columnnnn&quot;: &quot;User&quot;, &quot;values&quot;: [ { &quot;value&quot;: &quot;07&quot; }, { &quot;value&quot;: &quot;10&quot; } ] }, { &quot;columnnnn&quot;: &quot;Amount&quot;, &quot;values&quot;: [ { &quot;value&quot;: &quot;70&quot; } ] }, { &quot;columnnnn&quot;: &quot;User1&quot;, &quot;values&quot;: [ { &quot;value&quot;: &quot;57&quot; } ] }, { &quot;columnnnn&quot;: &quot;Column&quot;, &quot;values&quot;: [ { &quot;value&quot;: &quot;80&quot; } ] }, { &quot;columnnnn&quot;: &quot;Column2&quot;, &quot;values&quot;: [ { &quot;value&quot;: &quot;10&quot; } ] } ] } ]</pre> <p>以下是HTML代码:</p> <pre class="brush:php;toolbar:false;">&lt;div *ngFor=&quot;let j of finalResult; index as i&quot; class=&quot;&quot;&gt; &lt;div class=&quot;&quot;&gt; &lt;span title=&quot;{{j.tableNamee}}&quot;&gt;Table Name : {{j.tableNamee}} &lt;/span&gt; &lt;/div&gt; &lt;div class=&quot;&quot;&gt; &lt;table class=&quot;table table-bordered&quot;&gt; &lt;tbody&gt; &lt;tr class=&quot;&quot;&gt; &lt;th class=&quot;&quot; scope=&quot;col&quot; *ngFor=&quot;let k of j.colCategories&quot;&gt; {{k.columnnnn}} &lt;/th&gt; &lt;/tr&gt; &lt;ng-container *ngFor=&quot;let k of j.colCategories&quot;&gt; &lt;tr class=&quot;&quot;&gt; &lt;ng-container&gt; &lt;div *ngFor=&quot;let m of k.values&quot;&gt; &lt;td class=&quot;&quot;&gt; &lt;div class=&quot;&quot;&gt; &lt;span title=&quot;{{m.value}}&quot;&gt; {{m.value}} &lt;/span&gt; &lt;/div&gt; &lt;/td&gt; &lt;/div&gt; &lt;/ng-container&gt; &lt;/tr&gt; &lt;/ng-container&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;/div&gt; &lt;/div&gt;</pre> <p>这里没有特定的ts代码。我只是按照上述格式操作数据,并尝试在HTML中应用循环。我做错了什么吗?</p> <p><strong>这是期望的输出:</strong> 期望的输出</p> <p><strong>这是我得到的当前输出:</strong> 当前输出</p> <p>任何帮助将不胜感激!</p>
P粉949267121
P粉949267121

全部回复(1)
P粉511896716

你的HTML标记看起来很奇怪,因为你的<tr>包含一个包裹<td><div>。我认为这就是导致你的问题的原因。

我没有尝试过,但你可以尝试将你的<table>标记更改为以下内容:

<table class="table table-bordered">
        <thead>
            <tr class="">
                <th class="" scope="col" *ngFor="let k of j.colCategories">
                    {{k.columnnnn}}
                </th>
            </tr>
        </thead>
        <tbody>
            <tr class="" *ngFor="let k of j.colCategories">
                <td class="" *ngFor="let m of k.values">
                    <div class="">
                        <span title="{{m.value}}"> {{m.value}} </span>
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号