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,这次没有尝试
参考: