为什么v-for 不管用了

我在html页面中引入了vue,可是为什么没有反应呢,控制台也不报错,后台的数据也能拿到
这是一个小demo 的源码
图片描述

有哪位大神可以指教一下

阅读 5.1k
7 个回答
mounted: function(){
    var self = this;
    $.ajax({
        url: "",
        success: function(res){
            self.list = res.data
        }
    })
}

说几个问题吧..

  1. 你的dataType是jsonp, type 是 post 你是要跨域吗? 如果不是的话 dataType是不是写错了?
  2. 冒号的缩进逼死强迫症了.. 都改成 data: 这样的形式吧
  3. 你没在babel的环境里, 就不要用ES6的写法了. 改成 mounted: function(){}
  4. 就像楼上说的, 没必要为了ajax, 引入一个jquery, 去学一下 axios 怎么用.
  5. 等浏览器环境熟练之后, 再去学习和使用 vue-cli + ES6.

this指向的问题,

this.list = result.data
其中这里的this指向的不是vue实例

在ajax请求外保存this指向

var that = this;
$.ajax({
    ....
    success:function(res){
        that.list = res.data;
    }
})

不是v-for 是this指向

你在ajax 外面输出一下this.list 是空把

你在请求外,var that=this;然后把success里面的this改成that

首先建议还是先看下文档吧.
vue有自己的封装的ajax,像resource,axios都可以,没必要再去jq,另外this指向最好也了解下,既然写demo就从最开始搞,先脱离jq(并不是说不能用).只是建议啊.

success里面的this.list,this指向有问题

mounted(){
    let self=this;
    $.ajax({
        ...
        self.list=...
    })
},
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题