2016-04-06 19 views
0

を使用してオブジェクト内のオブジェクトを反復処理する私はこのようになりますオブジェクトのコレクションがあります。私が使用している場合どのようにNGリピート

[{ 
    "mainObj": "main1", 
    "subObjArray":{ 
       "subObj": "sub1", 
       "deepSubObjArray":[{ 
            "deepSubObj": "deep1", 
            "property": "something", 
            },{ 
            "deepSubObj": "deep2", 
            "property": "somethingElse" 
            }] 
       }, 
    },{ 
    "mainObj": "main2", 
    "subObjArray":{ 
       "subObj": "sub2", 
       "deepSubObjArray":[{ 
            "deepSubObj": "deep3", 
            "property": "something", 
            },{ 
            "deepSubObj": "deep4", 
            "property": "somethingElse" 
            }] 
       }, 
}] 

を:

<tr ng-repeat="mainObj in mainObjArray"> 
<td>{{mainObj}}</td> 
<td>{{mainObj.subObjArray.deepSubObjArray}}</td> 

私はオブジェクト全体の文字列を取得し、 "deepSubObj"文字列の配列は、期待通りですが、試してみると:

私は何も得られません。

これは、この配列を反復処理する正しい方法ではありませんか?他に何が間違っているのでしょうか?

答えて

1

ng-repeatタグがネストされている場合、everything is straightforward

問題はレイアウトに関連し、ng-repeat反復には関連しません。 <td>タグの外側の表で<div>タグが許可されていないと、表が正しく表示されません。

ネストされたngRepeatディレクティブを使用すると、オブジェクトによってはパフォーマンスが低下する可能性があります。出力前にデータを準備することは、しばしばより良い解決策です。

+0

そのことについてうん、ごめん

<div ng-controller="MyCtrl"> <ul> <li ng-repeat="mainObj in mainObjArray"> {{mainObj.mainObj}} <ul> <li ng-repeat="deepSubObj in mainObj.subObjArray.deepSubObjArray"> {{deepSubObj.deepSubObj}} </li> </ul> </li> </ul> </div> 

JS。私は意味した: ng-repeat = "mainObjArrayのmainObj" ng-repeat = "mainObj.subObjArray.deepSubObjArrayの" deepSubObj " 編集されました。 –

+0

@ArtemioRamirez有効なhtmlではありません。同じ要素でこれを行うと、いいえ、うまくいきません。ネストされたng-repeatはネストした要素でなければなりません。

estus

+0

実際にを使用しています。

2

HTML

angular.module('myApp', []) 
     .controller('MyCtrl', function ($scope) { 
      $scope.mainObjArray = [{ 
       "mainObj": "main1", 
       "subObjArray": { 
        "subObj": "sub1", 
        "deepSubObjArray": [{ 
         "deepSubObj": "deep1", 
         "property": "something", 
        }, { 
         "deepSubObj": "deep2", 
         "property": "somethingElse" 
        }] 
       }, 
      }, { 
       "mainObj": "main2", 
       "subObjArray": { 
        "subObj": "sub2", 
        "deepSubObjArray": [{ 
         "deepSubObj": "deep3", 
         "property": "something", 
        }, { 
         "deepSubObj": "deep4", 
         "property": "somethingElse" 
        }] 
       }, 
      }] 
     }); 

効果

enter image description here