javascript - v-for 基于 v-model 值的项目

标签 javascript vue.js vuejs2

我有一个小表单,用户可以在其中提交新照片并查看以前在表单下提交的照片。在表单的开头,用户选择照片所在的相册,然后上传。我遇到的问题是如何根据他们选择的相册获取照片。示例:

<select v-model="newPhoto.album">
  <option value="">Select Album</option>
  <option v-for="album in albums" :value="album['.key']">{{album.name}}</option>
</select>

<ul>
  <li v-for="img in album">{{img.name}}</li>
</ul>

我知道如果 UL 嵌套在选项中,这会起作用,但由于我的页面结构,这不是一个选项。如何传递正确的相册以重复相册中的图像?数据结构如下:

-Album Firebase ID
  images
    -Photo Firebase ID
      src:
      name:

最佳答案

如果我无法使用所选的键而不是专辑,我可能会这样做。

computed:{
  selectedAlbum(){
    return this.albums.find(a => a['.key'] === this.newPhoto.album)
  }
}

在你的模板中

<ul v-if="newPhoto.album">
  <li v-for="img in selectedAlbum.imgs">{{img.name}}</li>
</ul>

这是一个 example .

如果您使用专辑作为您选择的值,它可能看起来像这样。无需计算。

<select v-model="newPhoto.album">
  <option value="">Select Album</option>
  <option v-for="album in albums" :value="album">{{album.name}}</option>
</select>

<ul>
  <li v-for="img in newPhoto.album.imgs">{{img.name}}</li>
</ul>

example

关于javascript - v-for 基于 v-model 值的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44056136/

相关文章:

javascript - 如何在javascript中的onclick函数之外传递这个关键字

typescript - VS Code在Vue+TypeScript项目中找不到模块,WebStorm没问题

javascript - 改进 slider 的鼠标滚轮算法导航

javascript - vuejs 模板中的引号

javascript - Nuxt.js 中的 "document is not defined"

javascript - 如何在打开另一个页面时最小化我网站的侧边栏?

javascript - 来自源 'file://' 的图像已被跨源资源共享策略 : 阻止加载

vue.js - VueJS 2 $emit 和 $on

javascript - 字符串内的数字递增。

javascript - 使用 vuejs 选中/取消选中子组件中的复选框