在vue中通过axios请求时未定义功能

时间:2018-07-03 13:54:28

标签: vue.js axios

我正在尝试进行axios调用,并且工作正常,但是当我从作用域调用函数时,它会返回我

loadData未定义。

import vSelect from 'vue-select';

export default {
    props     : [],
    data      : () => {
        return {
            assets       : [],
            folders      : [],
            parent_id    : 0,
            moveParentId : null,
            selectedAsset: {},
            parentStack  : [],
            searchTerm   : '',
        };
    },
    components: {
        vSelect,
    },
    created() {
        this.loadData(this.parent_id);
        this.createFolder();
    },
    methods   : {
        loadData(parentId) {
            axios
                .get(
                    '/api/assets',
                    {
                        params: {
                            parent_id: parentId,
                        },
                    },
                )
                .then((response) => {
                    this.parentStack.push(parentId);
                    this.assets = response.data;
                })
                .catch((error) => {
                    if (error.response.status === vue.$options.HTTP_STATUS.UNPROCESSABLE_ENTITY) {
                    }
                });
        },
        createFolder() {
            $('#create-folder-button').on('click', function (e) {
                let form      = $('#create-folder').find('form'),
                    namefield = form.find('input#name'),
                    name      = namefield.val(),
                    action    = '/assets',
                    errorelem = form.find('#create-error');

                axios
                    .post(action, {
                        name: name,
                        type: 1,
                    })
                    .then(() => {
                        $('#create-folder').modal('hide');
                        loadData(this.parent_id); //ERROR OCCURS HERE.
                    }, function (error) {
                        if (error.response != null) {
                            if (error.response.status == vue.$options.HTTP_STATUS.UNPROCESSABLE_ENTITY) {
                                errorelem.html(error.response.status).show();
                            }
                        }
                    });
            });
        }

这是我的代码。

0 个答案:

没有答案