v-ifを使ってテーブルの行の表示を切り替える処理を作っています。行毎に個別に表示をオンオフさせようとしています。
そこで以下のようなv-ifを作りました。seenは、配列で準備しました。これは正常に動作しました。
html
1<tr v-for="rec in records"> 2 <td>{{rec.a}}</td> 3 <td>{{rec.b}}</td> 4 <td @dblclick="edit_me"> 5 {{rec.c}} 6 <textarea v-if="seen.title.includes(rec.id)></textarea> 7 </td> 8 </tr>
javascript
1seen:{ 2 code:[],title:[],date:[] 3} 4 5↓↓ 6関数呼び出し後に以下の処理 7seen.title.push(id)
しかし複数行について並行的に処理をする場合があるので、配列ではなく、setと使いたいと考えました。そこで次のようにしたところ、表示の切り替えができなくなりました。
consoleで確認したところ、setへの値の追加は問題無くできています。
<tr v-for="rec in records"> <td>{{rec.a}}</td> <td>{{rec.b}}</td> <td @dblclick="edit_me"> {{rec.c}} <textarea v-if="seen.title.has(rec.id)"></textarea> </td> </tr> seen:{ code:new Set(),title:new Set(),date:new Set() }
どこがまずいのでしょうか。
ご指導お願いします。
追記↓ set
へのデータの追加部分。これをvue
で呼び出しています。ほぼ生のコードなので、上のサンプルときちんと合わないところがあるかもしれません。 ※複数のセルについて似たような処理をさせているので、clsの値を取得して分岐するように作っています。
javascript
1var start_edit=function(event){ 2 var tage=$(event.target); 3 var cls=td.attr("class").split(" ")[0]; 4 var document_id=tage.parents("tr").data("document_id"); 5 V.seen[cls].add(document_id); 6}
回答1件
あなたの回答
tips
プレビュー