1

我已经阅读了 VueJS 教程,但我仍然无法提出解决方案。

我有一个列表列表,我想使用手风琴显示它们(这是 vue-strap 的一个组件,之前经过多次测试可以正常工作)。

所以有一个列表,例如:

'myList': [
  ['el 1', 'el 2', 'el 3'], ['el 1', 'el 2'], ['el another']
]

我期望以下可视化:

清单 1:

  • 埃尔 1
  • 埃尔 2
  • 埃尔 3

清单 2:

  • 埃尔 1
  • 埃尔 2

清单 3:

  • 另一个

但是 VueJS 并没有渲染这个组件……!

代码如下:

<template>
  <accordion id="rabo" :one-at-atime="true">
    <template v-for="list in myLists">
      <panel header="List #{{ $index }}" :is-open="true">
        <ul>
          <li v-for="el in list">
            {{el}}
          </li>
        </ul>
      </panel>
    </template>
  </accordion>
</template>

<style lang="scss" scoped>
</style>

<script>
  import Vue from 'vue'
  import { accordion, panel } from 'vue-strap'

  module.exports = {
    components: {
      'accordion': accordion,
      'panel': panel
    }
  }

  new Vue({
    el: '#rabo',
    data: {
      'myLists': [['el 1', 'el 2', 'el 3'],['el 1','el 2'],['el another']]
    }
  })
</script>
4

1 回答 1

2

你应该:

  1. 将 Vue 实例创建到单独的文件中
  2. myLists数组放入data组件中
  3. 绑定header道具

我的手风琴.vue

<template>
  <accordion :one-at-atime="true">
    <template v-for="list in myLists">
      <panel :header="`List #${$index}`" :is-open="true">
        <ul>
          <li v-for="el in list">
            {{el}}
          </li>
        </ul>
      </panel>
    </template>
  </accordion>
</template>

<script>
  import { accordion, panel } from 'vue-strap'

  export default {
    components: {
      accordion, panel
    },

    data () {
      return {
        myLists: [
          ['el 1', 'el 2', 'el 3'],
          ['el 1', 'el 2'],
          ['el another']
        ]
      }
    }
  }
</script>

Vue 实例

import Vue from 'vue'
import MyAccordion from './MyAccordion.vue'

new Vue({
  el: '#demo',
  components: { MyAccordion }
})

http://www.webpackbin.com/VyPHjF_V-

于 2016-06-14T06:40:43.253 回答