我正在创建一个网站来列出我的所有项目。我正在使用Vuex和Firebase存储我的所有数据。
我希望每个项目都有自己的“待办事项列表”。 创建新项目时,创建数组女巫是我的待办事项列表。在Firebase中,它看起来像这样:Screenshot of Firebase
现在,我想显示我的项目列表。首先,我将项目作为计算的道具获得,如下所示:
<script>
export default {
computed: {
projects () {
return this.$store.getters.loadedProjects
}
},
created () {
this.$store.dispatch('loadProjects')
},
}
</script>
我可以循环浏览项目并显示每个项目的标题。
我的问题是:如何在计算的道具内部遍历待办事项数组?
<template>
<div v-for="project in projects" :key="project.id">
<p>{{ project.title }}</p>
<!-- Looping through todos (array) in an computed prop -->
<div v-for="(todo, index) in todos" :key="todo.id">
<p>{{ project.todos[index].title }} </p>
<p>{{ project.todos[index].completed }} </p>
</div>
</div>
</template>
试图在v-for中使用计算的prop,但这不起作用。 不知道我是否了解计算属性的含义。我可以在data()内定义project()吗?并将吸气剂链接到数据?
<div v-for="todo in {{project.todos}} :key="todo.id>
答案 0 :(得分:1)
如果第二个循环位于第一个循环中,则可以通过以下方式访问它:
<template>
<div v-for="project in projects" :key="project.id">
<p>{{ project.title }}</p>
<!-- Looping through todos (array) in an computed prop -->
<div v-for="todo in project.todos" :key="todo.id">
<p>{{ todo.title }} </p>
<p>{{ todo.completed }} </p>
</div>
</div>
</template>
在这种情况下,创建循环时,project是数组的单个元素,因此project.todos是该特定项目的待办事项列表。
https://vuejs.org/v2/guide/list.html#Mapping-an-Array-to-Elements-with-v-for