これが私がそれを表示する方法です
<tr v-for="(foodItem, index) in filteredFoodItems">
<td>{{ foodItem.name }}</td>
<td>{{ foodItem.price | currency('£') }}</td>
<td>{{ foodItem.category }}</td>
<td><a @click="removeItem(index)" class="button is-danger is-outlined">
<span>Delete</span>
<span class="icon is-small">
<i class="fas fa-times"></i>
</span>
</a>
</td>
</tr>
これは私が削除するために使用するものです
router.delete('/', function (req, res) {
let itemToRemove = req.body;
let FoodItem = mongoose.model('FoodItem', FoodItemSchema);
FoodItem
.find(itemToRemove)
.remove(itemToRemove, err => {
if (err) return handleError(err);
})
})
ボタンをクリックすると、データベースで選択したアイテムではなく、データベースデータ全体が削除されました。v-forでは、各食品にインデックスが付けられるようにインデックスを付け、@ clickでremoveItem(index)を付けて、それを参照しますが、データベース全体を削除しましたか?誰かが私が間違ったことを見つけることができますか?前もって感謝します!
これがremoveItemです
removeItem(itemToRemove) {
axios.delete('/api/menu', this.foodItems[itemToRemove])
.then(response => {
console.log(response);
})
.catch(err => {
console.log(err)
});
}
},
ルーターコードでは、何を削除するかを決定するために応答本文に依存しています。ただし、axiosコードでは、応答本文をロードせず、配列要素のみを指定します。そう...
変化する
axios.delete('/api/menu', this.foodItems[itemToRemove])
に
axios.delete('/api/menu', {data:this.foodItems[itemToRemove]})
その単純な変更はあなたのために働くはずです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加