2016-05-16 4 views
3

Было несколько вариантов этого вопроса, но я нашел конкретный сценарий, в котором я не могу опустить голову. У меня есть этот шаблон на родительском элементе:Вложенные строки таблицы в Vue

<tbody> 
    <tr is="tree-item" v-for="item in children" :item="item"></tr> 
</tbody> 

Пока все хорошо. Ребенок элемент:

<tr v-on:click="toggle" class="{{ classes }}"> 
    <td class="name"> 
     {{ item.tree_item_heading }} 
    </td> 
</tr> 

<tr v-show="isLoaded" is="tree-item" v-for="item in grandChildren" :item="item"></tr> 

Это рекурсивная форма линии, так что если первый tree-item есть дети, они будут отображаться как tree-item тоже. Хотя он отображается хорошо, он отображается как экземпляр фрагмента, поэтому свойство v-show игнорируется.

Любая идея о том, как это решить?

Приветствия

ответ

0

Вы можете попробовать использовать несколько TBODY тегов для родительского цикла:

<tbody v-for='item in children'> 
    <tr is="tree-item" :item="item"></tr> 
    <tr v-show="isLoaded" is="tree-item" v-for="gItem in item.children" :item="gItem"></tr> 
</tbody> 
+0

Да, я думал об этом варианте, но затем я получаю '' tbody' внутри tbody', который до сих пор нелегальный макет таблицы и разрывает его. –

+0

Если вы ставите jsfiddle, чтобы играть, я могу попытаться снова взглянуть на вас? Я предполагаю, что «рекурсивная» часть вашего вопроса - это то, что вызывает его, хотя - да, решение тегов с несколькими телами умрет тогда ... –

+0

Вы правы, взгляните на это: https://jsfiddle.net/9yphm6wd/5 / –