前提・実現したいこと
初学者です。
Vuejsにて、v-forで作成したtableにおいて、以下のようなコードで<td>タグの中に
<input>要素を入れて、v-modelにてオブジェクトとして保存したいと考えています。
内容は、単純に、何月何日に、何時~何時まで、どんなことをしたという
表形式の記録をDBに保存しようとしています。保存する際に、
[{...},{...},{...},{...}・・・・]とできればよいのでは?と考えています。
実際の保存方法がこの形式が正しいのかも不安に思っておりますが・・・・・
発生している問題・エラーメッセージ
dataオプションの中でv-modelと連携しているため、table のinputのvalue がすべて
同じになってしまうことは、理解したのですが、v-forで配列として要素を作成して
回しているため、この配列にそれぞれのオブジェクトを登録できればよさそうな気がしていますが
どのようにすれば実現できるかわかっていません。
特にエラーもでていません。
該当のソースコード
TimeData.vue
1 <div> 2 <table class="table"> 3 <thead> 4 <tr> 5 <th>番号</th> 6 <th>日付</th> 7 <th>開始時間</th> 8 <th>終了時間</th> 9 <th>備考</th> 10 </tr> 11 </thead> 12 <tbody> 13 <tr v-for="item in route_input" :key="item" :name="item"> 14 <td>{{ item }}</td> 15 <td><input type="date" v-model="setOverTime.overTimeDate" /></td> 16 <td><input type="time" v-model="setOverTime.overTimeStart" /></td> 17 <td><input type="time" v-model="setOverTime.overTimeEnd" /></td> 18 <td><input type="text" v-model="setOverTime.overTimeCom" /></td> 19 </tr> 20 </tbody> 21 </table> 22 <button @click='test'>test</button> 23 </div> 24
script
1const data_array = [1, 2, 3, 4, 5]; 2export default { 3 data() { 4 return { 5 route_input: data_array, 6 setOverTime: { 7 overTimeDate: "", 8 overTimeStart: "", 9 overTimeEnd: "", 10 overTimeCom: "", 11 }, 12 }; 13 }, 14 methods:{ 15 test(){ 16 console.log(setOverTime); 17 } 18 }, 19}
試したこと
computed オプションや、子コンポーネント化して親に読み込む等も
試してみようと思いましたが、解決の方向性がわからず、うまく試せていません。
ご回答よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
VS-CODEにて、ローカル開発を行っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/29 01:30
2021/05/29 11:58 編集
2021/05/30 23:12