2013-11-27 2 views
0

я следующий контроллер:AngularJS петля через JSON и проверить, если многомерный

controller('homepageCtrl', function ($scope) { 
    $scope.menu = { 
     "Home": "/", 
     "Data Sources": { 
     "Add": "/datasources/add", 
     "Edit": "/datasources/edit", 
     "List": "/datasources/list" 
     }, 
     "Test": "/test" 
    } 
}); 

И следующий HTML (JADE)

div(ng-controller='homepageCtrl') 
     div(ng-repeat='(key, val) in menu') 
      {{key}} - {{val}} 
      div(ng-repeat='(k, v) in val') 
      {{k}} - {{v}} 

Я хочу Переберите объект JSON, но и проверить если текущее значение является другим объектом JSON, и если оно затем итератируется через него.

Код выше в настоящее время производит:

Data Sources - {"Add":"/datasources/add","Edit":"/datasources/edit","List":"/datasources/list"} 
Add - /datasources/add 
Edit - /datasources/edit 
List - /datasources/list 
Home -/
0 -/
Test - /test 

Однако я хочу ему генерировать:

Add - /datasources/add 
Edit - /datasources/edit 
List - /datasources/list 
Home -/
0 -/
Test - /test 
+0

* Ваш HTML * не HTML , –

+0

@arturgrzesiak Это нефрит, извините, я обновлю вопрос –

ответ

2

Почему бы не только с помощью ng-if:

<div ng-repeat="(key, val) in menu"> 
    <div ng-repeat="(k, v) in val" ng-if="typeof val == 'object'"> 
     ... 
    </div> 
</div> 
+0

Спасибо @Moritz, но val является элементом json, а не массивом –

+0

Я обновил пример, чтобы проверить json Object. –

+0

Почему вокруг 'val' нет круглых скобок? – CodyBugstein

Смежные вопросы