2016-07-12 11 views
2

を平坦化することなく、私は私が行っているNGリピート式があり、次のオブジェクトネストされたNG-繰り返し、元のデータソース

$scope.things = [{ 
    name: 'Bob', 
    otherThings: [{ 
     foo: 'hello' 
    },{ 
     foo: 'bye' 
    }] 
},{ 
    name: 'Sid', 
    otherThings: [{ 
     foo: 'cake' 
    },{ 
     foo: 'fish' 
    }] 
}]; 

ために、表の行を生成するために、NGリピートを使用しています:

<tbody ng-repeat="thing in things"> 
    <tr ng-repeat="otherThing in thing.otherThings"> 
     <td>{{thing.name}}</td> 
     <td>{{otherThing.foo}}</td> 
    </tr> 
</tbody> 

これは、複数のtbody要素、私のオブジェクト内の親項目ごとに生成します。私がしたい

<tbody> 
    <tr> 
     <td>Bob</td> 
     <td>hello</td> 
    </tr> 
    <tr> 
     <td>Bob</td> 
     <td>bye</td> 
    </tr> 
</tbody> 
<tbody> 
    <tr> 
     <td>Sid</td> 
     <td>cake</td> 
    </tr> 
    <tr> 
     <td>Sid</td> 
     <td>fish</td> 
    </tr> 
</tbody> 

を複数のtbody要素を避けますが、親アイテムと子アイテムの両方にアクセスするには、ng-repeatをネストする必要があります。

元のオブジェクトを平坦化して、親情報が各子に複製されるようにすることもできますが、可能な場合はこれを避け、そのままデータ構造を使用したいと考えています。

ng-repeatの特別な用途はありますか? 1回のng-repeatで各繰り返しで親アイテムと子アイテムの両方にアクセスできる複数の式私は別の行シェーディングのためのCSSセレクタを持っているので、

UPDATE

おかげで、私は、複数のtbody要素を避けたい理由は次のとおりです。

tbody tr:nth-child(odd){ 
    background-color: $theme-list-alt; 
    } 

それぞれの親は一つだけを持っていた場合子供のアイテムはすべて同じ色になりますが、私は全体にわたって交互の色を使用します。

アップデート2

は、私はここに私を助けることができるngのリピートスタートとngのリピートエンドを使用するかどうかを疑問に思ったので、私は私のあたりの行を与え、次のPlunkr

このdoesntのを試してみました子:例:

Bob hello 
Bob bye 
Sid cake 
Sid fish 

私はこれをどのように達成できるかわかりません。

+0

使用NGリピート ' – Rakeschand

+0

'上 'ない'の私はすでに – mindparse

+0

私の例では午前が、1つは、私もtr' – Rakeschand

答えて

2

これを試してください。

<tbody> 
    <tr ng-repeat="thing in things"> 
    <td>{{thing.name}}</td> 
    <td ng-repeat="otherThing in thing.otherThings">{{otherThing.foo}}</td> 
    </tr> 
</tbody> 
+0

「これを試してください」...なぜですか?あなたは何をした?なにが問題だったの? – Ankh

+0

@ Ankh、それは明確です –

+1

これは私が探している望ましい出力を与えません。子アイテムごとに1つの行が必要ですが、行の内容は親アイテムと子アイテムの両方のプロパティを使用する必要があります – mindparse

関連する問題