или вложенный список - Vuetify - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь создать вложенный список с более чем тремя уровнями вложенности.Когда я помещаю дочерний объект элементов в дочерний элемент в v-list, он ничего не отображает.

Возможно ли даже создать такой вложенный список в vuetify?Если нет, какое решение этой проблемы может быть?

<div>
  <v-list v-for="(powerPlant, i) in powerPlants" :key="i">
    <v-list-group
      prepend-icon="fas fa-bolt"
      value=""
     >

      <v-list-tile slot="activator">
        <v-list-tile-title>{{powerPlant.name}}</v-list-tile-title>
      </v-list-tile>

      <v-list-group
        no-action
        sub-group
        value="true"
        v-for="(generator, i) in generators" :key="i"
      >
        <v-list-tile slot="activator">
          <v-list-tile-title>{{generator.name}}</v-list-tile-title>
        </v-list-tile>

        <v-list-tile
          v-for="(option, i) in options"
          :key="i"
        >
          <v-list-tile-title v-text="option[0]"></v-list-tile-title>
          <v-list-tile-action>
            <v-icon v-text="option[1]"></v-icon>
          </v-list-tile-action>
        </v-list-tile>
      </v-list-group>
    </v-list-group>
   </v-list>
  </div>

Если есть другой способ создать большой вложенный список, используя Vue.js без использования jQuery, я бы хотел научиться.

Извините за не объяснить, хорошо.Таким образом, опубликованные могут достичь 3 уровня списка, но я не могу идти дальше, как четыре или пять уровней.

1 Ответ

0 голосов
/ 08 мая 2019

Я решил это, вложив v-list следующим образом:

<v-list>
    <v-list-group v-for='node in nodes' v-model='node.active'>
        <v-list-tile slot='activator' @click=''>
            <v-list-tile-title>{{node.text}}</v-list-tile-title>
        </v-list-tile>
        <v-list class='py-0 pl-1'>
            <v-list-group v-for='child in node.children' v-model='child.active'>
                <v-list-tile slot='activator' @click=''>
                    <v-list-tile-title>{{child.text}}</v-list-tile-title>
                </v-list-tile>
                <v-list class='py-0 pl-2' v-for='grandchild in child.children'>
                    <v-list-tile>
                        <v-list-tile-title>{{grandchild.text}}</v-list-tile-title>
                    </v-list-tile>
                </v-list>
            </v-list-group>
        </v-list>
    </v-list-group>
</v-list>

Это может пойти как угодно глубоко.На самом деле мне нужен был бесконечно вложенный список, поэтому я создал этот простой рекурсивный компонент:

<template>
    <v-list>
        <template v-for='node in nodes'>
            <v-list-group v-if='node.children && node.children.length' v-model='node.active'>
                <v-list-tile @click='' slot='activator'>
                    <v-list-tile-title>{{node.text}}</v-list-tile-title>
                </v-list-tile>
                <node-list class='py-0 pl-3' :nodes='node.children'/>
            </v-list-group>
            <v-list-tile @click='' v-else>
                <v-list-tile-title>{{node.text}}</v-list-tile-title>
            </v-list-tile>
        </template>
    </v-list>
</template>

<script>
export default {
    name: 'node-list',
    props: ['nodes'],
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...