TypeError:this。$ set不是函数

时间:2016-01-06 12:36:21

标签: vue.js

您好我发现此错误: 未捕获(承诺)TypeError:此。$ set不是函数

以下是代码:

     export default {
        data: function() {
            return { movies: '' }
        },

        ready: function() {
            this.showMovies()
        },

        methods: {
            showMovies: function() {
                 this.$http.get(config.api.url + '/movies').then(function (response) {
                    this.$set('movies', response.data)
                 })
             }
        }
     }

2 个答案:

答案 0 :(得分:9)

this.$set不是示例代码中的函数的原因是因为this不再引用Vue ViewModel实例。

要制作您已发布的代码,您需要继续参考:

export default {
    data: function() {
        return { movies: '' }
    },

    ready: function() {
        this.showMovies()
    },

    methods: {
        showMovies: function() {
             var vm = this; // Keep reference to viewmodel object
             this.$http.get(config.api.url + '/movies').then(function (response) {
                vm.$set('movies', response.data)
             })
         }
    }
 }

答案 1 :(得分:0)

在回调函数中,您失去了Vue实例(this),这可以通过使用箭头函数()=>{...}解决:

   this.$http.get(config.api.url + '/movies').then((response)=> {
                    this.$set('movies', response.data)
                 })

或将回调绑定到this

   this.$http.get(config.api.url + '/movies').then(function (response) {
                    this.$set('movies', response.data)
                 }).bind(this)