Javascript Can';t调用传递给子对象的窗体对象的方法

Javascript Can';t调用传递给子对象的窗体对象的方法,javascript,laravel,Javascript,Laravel,我正在尝试应用本教程,尽管我所做的并不完全相同: 我已成功地将表单对象传递给我的子组件。我可以毫无问题地引用表单对象的属性console.log(this.form)还返回显示表单对象内的方法,但调用this.form.$method()失败 这是我的根: const app = new Vue({ el: '#app', data: { form: new Form({ //form data }), }, });

我正在尝试应用本教程,尽管我所做的并不完全相同:

我已成功地将表单对象传递给我的子组件。我可以毫无问题地引用表单对象的属性
console.log(this.form)
还返回显示表单对象内的方法,但调用
this.form.$method()
失败

这是我的根:

const app = new Vue({
    el: '#app',
    data: {
        form: new Form({
            //form data
        }),
    },
});
这是在我的组件中,它在调用store时抛出一个
未捕获类型错误:This.form.$post不是函数

export default {
    props: [
        'form',
    ],
    methods: {
        store() {
            this.form.$post(url);
        },
    },
}
这是在我的表单助手类中:

class Form {
    post(url) {
        return this.$http.post(url, {
            //form data
        }).then((response) => {
            //success
        }, (error) => {
            //error
        });
    }
}

您已将方法命名为
post
,并尝试使用
$post
调用它

尝试更改:

this.form.$post(url);
致:


希望这有帮助

首先,
url
没有被传递,也没有在
store()
方法中定义。我用实际方法手动输入url。不管怎样,我只是放弃了,直接导入了这个类。我认为vue更关心的是传递数据,而不是传递对象中的方法。
this.form.post(url);