toFormData

function toFormData(data = {})
{
    try {
        const formData = new FormData();
        Object.keys(data).forEach(k => {
            if (null === data[k] || '' === data[k]) {
                formData.append(k, '');
            } else {
                formData.append(k, data[k]);
            }
        });
        return formData;
    } catch (e) {
        throw new TypeError(e);
    }
}

使用

Vue.prototype.toFormData = toFormData;

new Vue({
    el: '#app',
    router,
    render: h => h(App),
});

export default {
    data() {
        return {
            user: {
                name: '',
                age: '',
            },
        };
    },
    methods: {
        submit() {
            const data = this.toFormData(this.user);

            // console.log(this.user);
            // for (let item of data.entries()) {console.log(item)}

            this.$http.post(`/users`, data)
                .then(res => console.log(res))
                .catch(err => this.$Notice.error({desc: err.message}));
        },
    },
}

无关的。

if(typeof Object.prototype.toFormData === 'undefined') {
    class cObject extends Object {
        constructor(){super()}
        static toFormData(data = {})
        {
            try {
                const formData = new FormData();
                Object.keys(data).forEach(k => {
                    if (null === data[k] || '' === data[k]) {
                        formData.append(k, '');
                    } else {
                        formData.append(k, data[k]);
                    }
                });
                return formData;
            } catch (e) {
                throw new TypeError(e);
            }
        }
    }

    // Object.prototype.toFormData = function (data = {}) {
    //     try {
    //         const formData = new FormData();
    //         Object.keys(data).forEach(k => {
    //             if (null === data[k] || '' === data[k]) {
    //                 formData.append(k, '');
    //             } else {
    //                 formData.append(k, data[k]);
    //             }
    //         });
    //         return formData;
    //     } catch (e) {
    //         throw new TypeError(e);
    //     }
    // };
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
Study hard and make progress every day. Study hard and make progress every day.
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1
mouyong

默默问一句,可能这不是比较好的做法,请问下大家有没有什么建议 :pensive:

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!