2015-03-31 65 views
1

我们如何通过ng-repeat将下面的JSON显示为ul>li列表?json ng-repeat angularjs中的多级对象

事情是这样的:

  • 首页
  • 关于我们
    • 关于一个
    • 关于两个
  • 服务
    • 服务一个
    • 服务两个

从下面JSON

{ 
    "Home_page": { 
     "name": "Home", 
     "shortname": "Home_page", 
     "heading": "Welcome to BSL-I" 
    }, 
    "About_us": { 
     "About-One": { 
      "name": "About one", 
      "heading": "Artist one" 
     }, 
     "About-Two": { 
      "name": "About Two", 
      "heading": "About Two" 
     } 
    }, 
    "Service": { 
     "Service-One": { 
      "name": "About one", 
      "shortname": "About_one", 
      "heading": "Artist one" 
     }, 
     "service-Two": { 
      "About-One": { 
       "name": "About one" 
         }, 
      "About-Two": { 
       "name": "About Two" 

      } 
     } 
    } 
} 

回答

0

那么首先你要在JSON JavaScript数组解码为有效的:

$scope.myArray = angular.fromJson(myJSONarray);

来自:https://docs.angularjs.org/api/ng/function/angular.fromJson

其次为上市:

<ul> 
    <li ng-repeat="element in myArray"> 
    {{element}} 
    <ul ng-show="element[0]"> 
     <li ng-repeat="subElement in element[0]"> 
     {{subElement}} 
     </li> 
    </ul> 
    </li> 
</ul> 

我没有测试过它,但应该看起来像上面那样。

0

脚本::

$http.post('URL') 
.success(function (data, status, headers, config) { 
    var res = JSON.parse(data); 
     $scope.response= res; 

现在你的JSON对象是握住response

您可以使用响应来区分类似的对象:

response.Home_page, response.About_us.About-One, response.Service.Service-One, response.Service.service-Two 

适用于HTML:

<ul> 
    <li ng-repeat="home in response.Home_page"> 
     {{home.name}} 
    </li> 
</ul>