2015-02-18 3 views
0

Ниже объекта должны генерировать строки таблицы для родительских и дочерних объектов под одной таблицей (в качестве братьев и сестер). как это может быть, я использовал ng-repeat-start, но не использовал. Мне нужно это для равных выравниваний.ng-repeat работает не так, как ожидалось

[ 
{'name':'parent1','children':[{'name':'child1'},{'name':'child2'}]}, 
{'name':'parent2','children':[{'name':'child1'},{'name':'child2'}]} 
...... 
] 
<table> 
<tr ng-repeat="parent in obj"> 
<td>{{parent.name}}</td> 
</tr> 
<tr ng-repeat="child in parent.children"> 
<td>{{child.name}}</td> 
</tr> 
........... 

Таблица должна генерировать, как показано ниже:

<table> 
<tr> 
<td>Parent1</td> 
</tr> 
<tr> 
<td>child1</td> 
</tr> 
<tr> 
<td>child2</td> 
</tr> 
<tr> 
<td>Parent2</td> 
</tr> 
<tr> 
<td>child1</td> 
</tr> 
<tr> 
<td>child2</td> 
</tr> 
...... 
</table> 
+0

«Whell это работает, как ожидается от него. Сначала он отображает все родительские имена, а затем ничего, потому что в области контроллера нет родительской переменной. – Beri

ответ

2

Вы можете попробовать

<table> 
    <tr ng-repeat-start="parent in obj"> 
     <td>{{parent.name}}</td> 
    </tr> 
    <tr ng-repeat="child in parent.children"> 
     <td>{{child.name}}</td> 
    </tr> 
    <tr ng-repeat-end=""> 
    <tr/> 
</table> 
+0

О, это выглядит интересно :) Я должен попробовать это;) – szapio

+0

Я пробовал это, но его не печатал. является повторным запуском, совместимым с AngularJS v1.0.5. – shaik

+1

@shaik, нет необходимости в версии 1.2+ –

1

Все это нормально, потому что этот код

<tr ng-repeat="child in parent.children"> 
<td>{{child.name}}</td> 
</tr> 

вне этой сферы

<tr ng-repeat="parent in obj"> 
<td>{{parent.name}}</td> 
</tr> 

, если вы хотите, чтобы достичь того, чего вы хотите, вы можете сделать плоский массив как этот

[ 
{'name':'parent1'}, 
{'name':'children1'}, 
... 
... 
] 

и перебрать его

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