Vue.js 如何在 v-for 循环中使用单选按钮

Bab*_*abr 5 vue.js

我正在尝试使用单选按钮,以便用户可以选择其中一张照片作为他们的个人资料照片:

<ul v-for="p in myPhotos">
  <li>
    <div>
      <div>
        <div>
          photo id: {{p.imgId}}
        </div>
        <input type="radio" v-model="profileImg" value="p.imgId"> Choose as profile image
      </div>
      <div><img v-bind:src="BASE_URL +'/uploads/' + userId + '/'+ p.imgId" /> </div>
    </div>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

值是这样的:

created () {
  axios.get(this.BASE_URL + '/profile/g/myphotos/', this.jwt)
  .then( res => {
    this.myPhotos = res.data.photos;
    this.showUploadedPhoto = true;
    this.profileImg = res.data.profileImg
  })
  .catch( error => {
    console.log(error);
  })
},
Run Code Online (Sandbox Code Playgroud)

选择照片后,该profileImg变量应设置为该照片的 imgId。

问题是如何让用户在这个 v-for 循环中只选择一张照片作为个人资料图片?

更新:myPhotos我正在迭代的对象的照片:

在此处输入图片说明

Nik*_*aut 13

通过提供名称,您可以将其视为一个元素

var app = new Vue({
  el:"#app",
  data:{
    images:[{imgId:1},{imgId:2},{imgId:3}],
    profileImg:2
  }
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div>
  <div v-for="image in images">
              <input type="radio" v-model="profileImg" name="profileImg" :value="image.imgId"> Choose as profile image
  </div>
  You have selected : {{profileImg}}
 </div>
</div>
Run Code Online (Sandbox Code Playgroud)