データがある場合は行を表示したい場合はvue
のテーブルを作成し、データがない場合は「結果がない」行を作成します。 jsfiddle:https://jsfiddle.net/ox0ozs5g/1/の基本的な見方があります。テーブル内のvue.js条件付きレンダリング
の条件が満たされても、なぜv-else
行が表示され続けますか?
データがある場合は行を表示したい場合はvue
のテーブルを作成し、データがない場合は「結果がない」行を作成します。 jsfiddle:https://jsfiddle.net/ox0ozs5g/1/の基本的な見方があります。テーブル内のvue.js条件付きレンダリング
の条件が満たされても、なぜv-else
行が表示され続けますか?
残念ながらv-if
とv-for
は連携していません。 V-他の要素は、直ちにV-IFまたはに従う必要があります」Vuejsドキュメントから
<template v-if="my_tasks.length">
<tr id="retriever-task-{{ index }}" v-for="(index, task) in my_tasks" >
<td>{{ task.id }}</td>
<td>{{ task.type }}</td>
<td>{{ task.frequency }}</td>
<td>{{ task.status }}</td>
<td><i v-on:click="deleteTask(index, task.id)" class="fa fa-trash"></i></td>
</tr>
</template>
<template v-else>
<tr>
<td colspan="6">No tasks found.</td>
</tr>
</template>
:
<tbody v-if="my_tasks.length">
<tr id="retriever-task-{{ index }}" v-for="(index, task) in my_tasks" >
<td>{{ task.id }}</td>
<td>{{ task.type }}</td>
<td>{{ task.frequency }}</td>
<td>{{ task.status }}</td>
<td><i v-on:click="deleteTask(index, task.id)" class="fa fa-trash"></i></td>
</tr>
</tbody>
<tbody v-else>
<tr>
<td colspan="6">No tasks found.</td>
</tr>
</tbody>
ます。またpseudoelement template
を使用することができます。このようにあなたは、v-if
1レベル移動することができますv-show要素 - それ以外は認識されません。 - https://vuejs.org/guide/conditional.html。これは、v-ifに続く追加のvueデータバインディング属性がそれを破っているように見える(例えば、v-forおよびv-on)。
代わりにv-showを使用できます。例:
<tr v-show="!my_tasks.length">
<td colspan="6">No tasks found.</td>
</tr>
y-ifはv-ifとv-forについてです。彼が示唆したように、またはv-elseをv-ifの逆に、つまりv-if = "!my_tasks.length"に変更できます。
いいえ、これは関係ありません。 「すぐに実行しなければならない」という表現は、同じレベルのHTML要素を指します。 Wahteverは内部に入れ子になっていますが、その文脈では関係ありません。上記で説明したように、同じレベルの 'v-if'だけが問題です。他のディレクティブ( 'v-on'など)でも問題ありません。 –
ありがとうございます。ただし、v-showを使用すると、OPの例でうまく動作します。 – morecchia808