vue不能set数据
发布于 3年前 作者 liuestc 4118 次浏览 来自 问答
粉丝福利 : 关注VUE中文社区公众号,回复视频领取粉丝福利
  1. demo环境:版本VUE2,html和test.json在同一个目录下
  2. 为甚不能set数据?
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>click</title>
</head>
<body>
    <div id="app">
    {{gridData}}{{apiUrl}}
    </div>
    
</body>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="http://cdn.bootcss.com/vue-resource/1.0.2/vue-resource.common.js"></script>
<script>
    var demo = new Vue({
    el: '#app',
    data: {
        gridData: "",
        apiUrl: 'test.json'
    },
    created: function() {
        this.getCustomers()
    },
    methods: {
        getCustomers: function() {
            this.$http.get(this.apiUrl)
                .then((response) => {
                    console.log(response.success)
                    this.$set('gridData', response.success)
                })
                .catch(function(response) {
                    console.log(response)
                })
        }
    }
})
</script>
</html>

test.json 就这样一个字段{success:1}

刚刚开始学VUE,请大家的多多指教

2 回复

Vue.set(object, key, value)官方给出的解释是动态的添加响应式属性的时候,我看了你的gridData已经在实例创建后就声明了

Vue.set(object,key,value)是用于给对象添加新的属性的,比如this.$set(this.gridData,’success’,response.success),第一个参数必须为对象,你写个字符串当然是不妥的。。。,这里直接写this.gridData = response.success就行了

回到顶部