使用ajax获取到数据后不能把数据渲染到页面上

来源:6-5 使用 Mockjs 来模拟数据

mangolime

2017-03-28

<template>
  <div id="app">
    <router-view></router-view>
    <ul>
      <li v-for="subject in movieData.subjects">{{ subject.title }}</li>
    </ul>
  </div>
</template>

<script>
import $ from 'jquery'
export default {
  name: 'app',
  data() {
    return {
      movieData: {}
    }
  },
  created() {
    $.ajax('http://api.douban.com/v2/movie/in_theaters', {
      dataType: 'jsonp',
      success: function (res) {
        this.movieData = res
        console.log(this.movieData)
      }
    })
  }
}
</script>

console.log能打印出获取到的数据,但是页面却不能渲染出数据,最新版的vue

写回答

2回答

fishenal

2017-03-28

对,这是es6箭头函数的特性,this是代码环境的this,以前的js 函数体内的this是运行环境的this。

如果不用箭头函数,你可以在created外层,设一个 var me = this, 然后再success里用me 代替 this

0
0

mangolime

提问者

2017-03-28

不好意思,已经解决了。原因是因为没有使用箭头函数将this值绑定到这个组建对象上。

0
0

最容易上手的Vue2.0入门实战教程

快速入门Vue2.0,组件化开发一个数字产品电商平台

3966 学习 · 999 问题

查看课程