尝试从服务器获取变量时,变量未定义

时间:2017-10-07 13:32:46

标签: javascript vue.js

当我试图从我的对象获取值时,我收到了一个奇怪的警告。我得到的值是JSON。我想知道这里的问题是什么,我的代码出了什么问题。为什么我的变量未定义?

我的模板代码:

<template>
    <textarea id="terms" v-model="terms.value" name="terms" type="text" rows="20"></textarea>
        <button class="btn waves-effect waves-light " v-on:click="updateUserProfile">Update Profile</button>
</template>


    <script>
    import firebase from 'firebase'
    import axios from 'axios'
    export default {

        data: function() {
            return {
              id: '',
              email: '',
              terms: {},

            }
        },
        methods: {
            getUserProfile: function() {
                var accessToken;
                var self = this;
                    var config = {
                      headers: {'Authorization': 'Bearer ' + accessToken}
                    };
                    axios.get('https://api-link/', config).
                    then(response => {
                        console.log("Response on GET OK: " + response)
                        self.id = response.data.id
                        self.terms = response.data.terms

                    })
                    .catch(e => {
                      console.log("Error on GET: " + e)
                    });
                }).catch(function(error) {
                    console.log("Error on getting token: " + error)
                });
            },
            updateUserProfile: function() {
              var accessToken;
                var self = this;
                var config = {
                  headers: {'Authorization': 'Bearer ' + accessToken}
                };
                axios.put('https://api-link/',
                { 
                  terms: self.terms
                }, config).
                then(response => {
                    console.log("Response on PUT: " + response)
                    self.email = response.data.email
                    self.id = response.data.id
                    self.userType = response.data.user_type
                    self.terms = response.data.terms
                })
                .catch(e => {
                  console.log("Error on PUT: " + e)
                });

            },
        },
        mounted() {
            this.getUserProfile()
        },
    }
    </script>

以下是我的控制台截图,如果您需要更多信息,请发表评论。 真的很感激帮助,因为我被困在这里好几个小时。还要提到我是VueJS的新手 enter image description here

1 个答案:

答案 0 :(得分:0)

检查您的回复是否最初未定义,如果没有,则可以将响应数据分配给您的变量: 把它放在你的GET中,我认为这将删除警告/错误。

if (response.data.terms !== undefined) {
    self.terms = response.data.terms
}