Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用angular从复杂json显示列表_Javascript_Angularjs_Json_Html Lists_Ng Repeat - Fatal编程技术网

Javascript 使用angular从复杂json显示列表

Javascript 使用angular从复杂json显示列表,javascript,angularjs,json,html-lists,ng-repeat,Javascript,Angularjs,Json,Html Lists,Ng Repeat,我有这个JSON(我没有创建它,也不能更改它) 我想将其显示为一个列表,如果某个标题只有一个选项,则该标题应显示在列表中,如果某个标题在选项中有多个项目,则应显示主标题,并且还应显示选项标题。 最终结果(根据上述示例)应显示: <ul> <li>news<ul> <li>important</li> <li>less important</li

我有这个JSON(我没有创建它,也不能更改它)

我想将其显示为一个列表,如果某个标题只有一个选项,则该标题应显示在列表中,如果某个标题在选项中有多个项目,则应显示主标题,并且还应显示选项标题。 最终结果(根据上述示例)应显示:

 <ul>
     <li>news<ul>
                <li>important</li>
                <li>less important</li>
             </ul>
        </li>
    <li>entertainment</li>
  </ul>
  • 新闻
    • 重要的
    • 不那么重要
  • 娱乐

如何在angularJS中实现这一点?

如果
myList
是您在json对象的
$scope
中使用的名称,您可以尝试类似的方法。 基本上是一个
ng repeat
和一个内部
ng repeat

<ul ng-repeat="element in myList.tags">
    <li>
        {{element.title}}
        <ul ng-repeat="innerElement in element.options">
            <li>{{innerElement.title}}</li>
        </ul>
     </li> 
</ul>
  • {{element.title}
    • {{innerElement.title}

我假设您的json文件存储在名为result的变量中

<ul ng-repeat = "tg in result.tags">
   <li ng-if="tg.options.length > 1">{{tg.title}}
      <ul ng-repeat ="innerElement in tg.options" >
         <li>{{innerElement.title}}</li>
      </ul>
   </li>
   <li ng-if="tg.options.length==1">{{tg.title}}</li>
</ul>
  • {{tg.title}
    • {{innerElement.title}
  • {{tg.title}

Thnx,上述两项建议都有助于解决问题。 我需要将两个
ng repeat
循环嵌套在一起,并对内部循环应用
ng if

我最终得到了这样的结论:

  • {{x.title}}
      {{y.title}}

<ul ng-repeat = "tg in result.tags">
   <li ng-if="tg.options.length > 1">{{tg.title}}
      <ul ng-repeat ="innerElement in tg.options" >
         <li>{{innerElement.title}}</li>
      </ul>
   </li>
   <li ng-if="tg.options.length==1">{{tg.title}}</li>
</ul>