当前位置: 首页 > 知识库问答 >
问题:

AngularJS ng-repeat,用于动态子json数组

益兴生
2023-03-14

我有一个动态JSON,其中包含名称列表,它还包含子名称作为子集。如何使用angularJS ng重复在超文本标记语言UI中显示它

示例动态JSON是

$scope.family = [
   {
      "name":"Siva",
      "child":[
         {
            "name":"Suriya"
         },
         {
            "name":"Karthick"
         }
      ]
   },
   {
      "name":"Kumar",
      "child":[
         {
            "name":"Rajini"
         },
         {
            "name":"Kamal"
         },
         {
            "name":"Ajith"
         }
      ]
   },
   {
      "name":"Samer"
   },
   {
      "name":"Mahesh"
   }
];
<div ng-repeat="members in family">
    <!-- How to Show it in the UI -->
</div>

注意:JSON是基于请求生成的。子数组是可选的,它可以包含长度“n”

共有2个答案

缑勇锐
2023-03-14

正确答案

<ul ng-repeat="member in family">
    <li>{{member.name}}
        <ul>
            <li ng-bind="c.name" ng-repeat="c in member.child"></li>
        </ul>
    </li>
</ul>
孟英叡
2023-03-14

您可以通过添加ng if指令来更好地回答问题,因为是可选的。当然,这不会对你的应用产生任何影响,但这是一种很好的编码方式。

另外,它不应该在ul上添加ng-repeat,而是应该在li中。为单个列表循环 ul 是没有意义的。

请参考这里的样品。

超文本标记语言:

<div ng-app="app" ng-controller="test">
    <ul ng-repeat="member in family">
        <li>
            {{member.name}}
            <span ng-if="member.child.length > 0">
                <ul>
                    <li ng-repeat="c in member.child">{{c.name}}</li>
                </ul>
            </span>
        </li>
    </ul>
</div>

JS:

var app = angular.module('app', []);

app.controller('test', function ($scope) {
    $scope.family = [
       {
           "name": "Siva",
           "child": [
              {
                  "name": "Suriya"
              },
              {
                  "name": "Karthick"
              }
           ]
       },
       {
           "name": "Kumar",
           "child": [
              {
                  "name": "Rajini"
              },
              {
                  "name": "Kamal"
              },
              {
                  "name": "Ajith"
              }
           ]
       },
       {
           "name": "Samer"
       },
       {
           "name": "Mahesh"
       }
    ];
});
 类似资料:
  • 问题内容: 我花了一段时间试图找到一个优雅的解决方案,而我却找到了一个“可行”的解决方案,它感觉不是最简单或正确的做事方式。 所以,我的问题是…如何动态加载指令!在某些情况下,以下是我希望我能摆脱它的方式!除了模板加载之外,我没有包含路由或其他任何内容,而是为下面的控制器分配了ng- controller。 app.js template.html 任何人都可以提供的建议将不胜感激,如果我做任何明

  • 问题内容: 给定一个像这样的json: 和两个常规的html输入: 我需要建立一个包含所有可能变化形式的表,例如: 这意味着,如果用户继续通过输入添加值,则将出现建立新变体的新行,例如: 我还需要有可用的id来处理它,并且当我使用输入(例如“Peter”“Black”)添加新值时,我需要像自动递增那样动态地自动填充id(颜色id)mysql,结果如下: 那可能吗?我可以使用哪些选项进行角度操作?我

  • 问题内容: 我在寻找一种不涉及引入一个额外的“通用”字段的溶液等,等这将是该变种领域的占位符。 我有一个JSON规范,它描述了几个大型结构,这些结构主要包含简单的值,但偶尔也有一个结构本身的值,其动态类型取决于某个字段的值。 例如,这两个JSON文档都应解组到相同的Go结构: 和 JSON结构已设置,我无法更改。 Go结构必须如下所示: 问题是如何实际执行操作以及该类型应为哪种类型。 我首先使其成

  • 我有下面的JSON结构 Q: 我怎样才能算出所有加法的*ngFor? 提前致谢并问候菲洛特

  • 问题内容: 我已经创建了一个表,并且正在使用http来加载表中的数据。因此,每次单击时,我的表数据都在变化,但是在表中看不到更新的数据。我创建了一个样本Plunker供参考。在我的项目中,当我单击“重新加载新数据”时,表中的数据已更改,但是在2-3次单击后,它没有更改。有人知道,如何解决它。 问题答案: ngTable指令有问题。仅在更改时更新。看看这个pl。我将$ scope [‘tablePa

  • 问题内容: 我正在尝试在ng-repeat中动态添加不同的指令,但是输出没有被解释为指令。 我在这里添加了一个简单的示例:http : //plnkr.co/edit/6pREpoqvmcnJJWzhZZKq 控制器: 指示: HTML: 如何通过ng-repeat 使角度拾取在中指定的指令? 问题答案: 我知道这是一个老问题,但是google将我带到了这里,但我不喜欢这里的答案。所以我创建了这个