【发布时间】:2017-10-07 13:32:46
【问题描述】:
当我尝试从我的对象中获取值时,我收到了一个奇怪的警告。我得到的值是 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 的新手
【问题讨论】:
-
哪一行代码有问题?
-
我认为这是在获取条款价值,在我的 getUserProfile()
-
一个问题是您的模板中有两个根元素。您需要在一些包含标签中包含
textarea和button,例如div。 -
这里是你的代码清理了一下(你的组件在 App.vue 中)。 codesandbox.io/s/jv5365839y
-
我看到你添加了
v-if="terms",如果有值就会显示,但是我需要相同的输入来更新或者如果用户不想设置术语,它将为空
标签: javascript vue.js