vuejs v-for下拉框有时有数据有时没有

描述:用vuejs的v-for加载下拉框时,有时下拉框能加载出来数据,但有时加载不出来,尤其在vuejs的renderList方法加断点时一般能加载出来。(在vue对象外ajax同步请求并赋值)

方案:最后通过设置ajax请求async为false、在mounted方法中调用vue定义函数解决。

解决代码:

data: {
    list: [],
},
mounted: function () {
    this.fnGetListArr();
},
methods: {
    fnGetListArr() {
        var _this = this;
        $.ajax({
            url: "xxx",
            //dataType: "json",   //返回格式为json
            async: false,
            data: { "xxx": "xxx" },
            type: "POST",
            success: function (data) {
                _this._data.list = JSON.parse(data);
            }
        });
    },
}

 另外:

有时有数据有时没:刚开始在vuejs外定义和调用赋值的方法,且ajax请求默认同步的,可能是因为vuejs执行比较快,v-for执行完时数据还没请求完,导致下拉框没数据。

在vue对象外设置ajax异步并对vue数据赋值:vm._data.list = listArr;,会提示:Cannot read property '_data' of undefined

vuejs有$axios代替ajax请求,但需要引用axios.js,这次没有尝试

 

参考:

vue 数据(data)赋值问题

Vue中mounted的简单理解

posted @ 2020-12-20 16:48  户的博客  阅读(853)  评论(0编辑  收藏  举报