Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue.js:添加_删除“;从v-for中移除元件时的元件_Javascript_Ruby On Rails_Vue.js - Fatal编程技术网

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);
        }

    }
}