You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular中无法展示JSON嵌套数据至表格,请求排查问题

问题分析与修复方案

咱们一步一步拆解你代码里的问题,都是些容易踩的小坑:

1. Controller 里的数组访问与语法错误

你的$scope.data是数组类型(外层包裹了[]),直接写$scope.data.Folder根本找不到对应数据,得先取数组里的第一个元素,再访问Folder属性。另外你的forEach语法也不完整,缺了闭合的大括号和括号。

修复后的 Controller 代码:

$scope.Folder = [];
// 先取data数组的第一个元素,再访问内部的Folder数组
angular.forEach($scope.data[0].Folder, function(choose) {
    $scope.Folder.push(choose);
}); // 补上缺失的闭合括号与大括号

2. View 里的表格结构逻辑错误

你现在的写法是在单个<tr>的每个<td>里循环所有Folder数据,这会导致所有Name挤在同一个单元格、所有CPU挤在第二个单元格,完全不符合表格「一行对应一条数据」的逻辑。应该循环<tr>标签,让每条Folder数据对应表格的一行,再在每行的<td>里展示对应属性。

另外你的<input>标签写法也有误:input是自闭合标签,不能把{{g.CPU}}放在标签内部,要绑定值的话用ng-model或者value属性。

修复后的 View 代码:

<tbody>
    <!-- 循环<tr>,每条Folder数据对应一行 -->
    <tr ng-repeat="g in Folder" role="row" class="odd">
        <td class="sorting_1">{{g.Name}}</td>
        <td>
            <input class="form-control" type="text" ng-model="g.CPU">
        </td>
        <td>
            <input class="form-control" type="text" ng-model="g.RAM">
        </td>
    </tr>
</tbody>

额外优化:简化数据绑定逻辑

其实你完全不用手动循环push数据,直接赋值就能完成绑定,代码更简洁:

// 直接将嵌套的Folder数组赋值给$scope.Folder
$scope.Folder = $scope.data[0].Folder;

这样就能正常把嵌套的 JSON 数据展示到表格里啦~

内容的提问来源于stack exchange,提问作者WhoAmI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:56:19