2017-11-12 4 views
1

マイVUEコンポーネント:vue.js 2のv-modelに複数の値を保存するにはどうすればよいですか?このような

<template> 
    <div class="panel panel-default"> 
     <a @click="deleteAll" href="javascript:" class="btn btn-danger pull-right"> 
      <span class="fa fa-trash"></span> Delete All 
     </a>  
     ... 
      <tr v-for="item in list"> 
       <td> 
        <div class="checkbox"> 
         <label> 
          <input type="checkbox" :value="item.id" v-model="checkedData"> 
         </label> 
        </div> 
       </td> 
       ... 
      </tr> 
     ... 
    </div> 
</template> 
<script> 
    export default { 
     data() { 
      return { 
       checkedData: [] 
      } 
     }, 
     methods: { 
      deleteAll() { 
       this.$http.post(window.BaseUrl+'/message/deleteAll', {ids: this.checkedData}) 
      } 
     } 
    } 
</script> 

私はいくつかのチェックボックスをチェックし、すべてのボタンを削除する]をクリックした場合、それは私があまりにも別の値を送信したいアヤックス

によって値item.idを送信します。

<input type="checkbox" :value="item._id+'#'+item.seller_id+'#'+item.buyer_id" v-model="checkedData"> 

だから私は値を分離するためのセパレータ#を使用します。私はこのようにしてみてください値item.seller_iditem.buyer_id

を持っています。それが動作すると思われる

それが最善の解決策であるかどうか?それとももっと良い解決法がありますか?

+0

これは実際には機能しますか?イテレータ内で、すべてのアイテムに同じ(配列)モデルを使用しているので、 '' 。とにかく、必要なデータを保持するようにモデルをクリーンアップすることができれば、ポストajaxコールを使って渡すことは簡単です。もちろんこれはあなたのバックエンドにも依存するかもしれません – Daniel

答えて

0

こんにちは、このhttps://jsfiddle.net/p8zhrg6g/29/をご覧ください。

<div v-for="item in list"> 
    <input type="checkbox" :id="item.id" :value="item.value" v-model="checkedNames"> 
    <label :for="item.id">{{item.value}}</label> 

これは、私はそれを行っているだろうかであるこのことができます願っていますか?

関連する問題