我使用 Firebase 开发了一个基于 Vue.js 的小型网络应用程序来存储和同步数据。我存储items
(例如,使用属性title和subtitle)和lists
属性listitems,其中items
存储了一组键(从 Firebase 生成的键)。结构如下所示:
现在的问题:我想显示一个列表并显示listitems属性中的项目,我这样做是这样的:
组件:
var ShowList = Vue.extend({
template: '#show-list',
firebase: {
// get all existing items from firebase
items: firebase.database().ref('items')
},
data: function () {
// get list item keys of list 'list_id' and bind it to this.list
this.$bindAsObject('list', listsRef.child(this.$route.params.list_id));
return {
list: this.list
};
}
});
模板:
<!-- show a list -->
<template id="show-list">
<ul v-if="list.items != ''">
<li v-for="key in list.items"> <!-- I would like to not being forced to -->
<template v-for="item in items"> <!-- iterate the whole list of existing items -->
<span v-if="item['.key'] == key">
{{ item.title }}
</span>
</template>
</li>
</ul>
<div v-else>No items.</div>
</template>
如您所见,我必须使用两次迭代,在其中迭代list.items
.
我的问题:是否有更有效的方法将实际对象映射到对象键列表?对于大量的项目记录,我的方法会很慢。也许我太盲目了,看不到更简单的解决方案?
谢谢你的时间!