在jquery闭包中调用vuejs组件的方法

时间:2018-03-13 07:02:11

标签: jquery vue.js vuejs2 closures vue-component

这是我的vuejs组件:

<script>
export default {
    props: ['columns', 'records', 'group', 'users'],
    data: function () {
        return {
            new_record: true,
            myrecords: this.records
        }
    },
    methods: {
        addRow: function () {
            try {
                console.log(this.myrecords);
                this.myrecords.push({});
                console.log(this.myrecords);
            } catch (e) {
                console.log(e);
            }
        },
        saveRow: function () {
            $.post("http://localhost/someurl", { somedata: somevalue })
                .done(function (data) {
                    console.log(data);
                    this.addRow();
                })
                .fail(function (error) {
                    console.log(error);
                    alert("error");
                });
...
...

错误: app.js:155 Uncaught TypeError:this.addRow不是函数

我理解为什么会发生这种情况,因为当前上下文中的this是jquery对象,

但问题是如何调用我的vue组件的addRow方法?

1 个答案:

答案 0 :(得分:3)

您需要在调用ajax之前添加let self = this。然后,您可以拨打self.AddRow()