Javascript Vue.js:添加_删除“;从v-for中移除元件时的元件
我有一些元素,通过Javascript Vue.js:添加_删除“;从v-for中移除元件时的元件,javascript,ruby-on-rails,vue.js,Javascript,Ruby On Rails,Vue.js,我有一些元素,通过v-for指令显示。每个元素都有“删除”按钮。当我单击它时,我用state.items.splice(payload.id,1)从数组中删除元素代码。Bu我还需要一个隐藏的输入,它将向服务器指示元素已被销毁。 在RubyonRails中就是这样 <input type="hidden" name="order[line_items_attributes][<ID>][_delete]" value="1" /> 如何添加此元素?我不知道是否理解您的
v-for
指令显示。每个元素都有“删除”按钮。当我单击它时,我用state.items.splice(payload.id,1)从数组中删除元素代码>代码。Bu我还需要一个隐藏的输入,它将向服务器指示元素已被销毁。
在RubyonRails中就是这样
<input type="hidden" name="order[line_items_attributes][<ID>][_delete]" value="1" />
如何添加此元素?我不知道是否理解您的问题,但这是我的回答
假设您有以下模板:
<ul>
<li v-for="item in items">
{{ item.name }} <a href="#" @click.prevent="deleteItem(item)">Delete</a>
</li>
</ul>
你能再解释一下为什么你需要隐藏的输入,以及它有什么帮助吗?在后端,应用程序运行在RubyonRails上。对于嵌套的表单元素,它具有特殊的行为。我正在编辑的主要表单是商店订单模型。订单在购物车中有许多项目。项是嵌套模型。为了从购物车中删除一些物品,我需要在该物品的请求中发送“\u destroy”属性。但是,如果有任何关于项目从状态中删除的信息,该如何做呢?您可以在执行state.items.splice(payload.id,1)的相同位置执行此操作代码>。如果不适合,请添加更多相关代码。如果删除=/code>,您可以设置删除
标志,然后在v-for
中生成隐藏的输入
,而不是常规的输入
?
export default {
data () {
return {
items: [
{
id: 1,
name: 'First Item'
},
{
id: 2,
name: 'Second Item'
}
]
}
},
methods: {
deleteItem (item) {
this.$http({
url: '/api/items/' + item.id,
method: 'delete'
}).then( response => {
// Do something here if you want
}, response => {
// Or here if you want to handle an error
})
let index = this.items.indexOf(item)
this.items.splice(index, 1);
}
}
}