这个。$ http.get似乎不起作用vue-resource

时间:2017-07-12 06:47:02

标签: javascript vue.js vuejs2 vue-resource

使用vue 2.1.10 vue-resource 1.3.4获取数据:

    const app = new Vue({
    el: '#UserController',
    data:{
      users : [],
    },
    methods:{
      fetchUser: function(){
          this.$http.get('http://localhost:8000/api/api/users', function(data){
              this.$set('users',data)
          })
      }
    },
    mounted(){
        this.fetchUser()
    }
});

但最后

用户没有价值。

2 个答案:

答案 0 :(得分:2)

Vue-resource是一种基于承诺的API。 get请求的语法应为

this.$http.get('/someUrl')
    .then(response => { 
        // get body data
        this.someData = response.body; 
    }, err => { 
        // error callback 
    }); 

由于您已在数据选项中初始化users: [ ],因此无需使用Vue.$set,您可以使用this.users = data直接指定值

所以这样做:

fetchUser: function(){
      this.$http.get('http://localhost:8000/api/api/users')
        .then((data) => {
            this.users = data;
        }, err => {
            // handle error 
        })
}

答案 1 :(得分:0)

     const app = new Vue({
        el: '#UserController',
        data:{
          users : [],
        },
        methods:{
          fetchUser: function(){
              var self = this;
              this.$http.get('http://localhost:8000/api/api/users', function(data){
                  self.$set(self,'users',data)
              })
          }
        },
        mounted(){
            this.fetchUser()
        }
    });

检查变量范围。将指针设置为“this”,如“self”。