Return 来自休息的数据 api
Return data from rest api
我正在尝试从休息中获取一些数据 api。然而,结果 this.someData 仍未定义。
我的组件如下
<template>
<div class="list">
<h1>List</h1>
<pre>msg: {{msg}}</pre>
</div>
</template>
<script>
import Vue from 'vue'
import VueResource from 'vue-resource'
Vue.use(VueResource)
export default {
name: 'list',
data () {
this.$http.get('http://localhost:8080/api/posts/filter?username=tons').then(response => {
// get body data
this.someData = response.body
console.log(this.someData)
}, response => {
// error callback
})
return {
msg: this.someData + 'somedata'
}
}
}
</script>
有人知道我做错了什么吗?
'data' 应该只是属性。在 'methods' 处你可以获取一些东西,然后填充你的 'data' 属性。
正确的代码如下所示:
<script>
export default {
data: function() {
return {
someData: null
}
},
methods: {
getData: function() {
// fetch here
this.someData = response.body;
}
},
mounted() {
this.getData(); // or trigger by click or smth else
}
}
</script>
在您的模板中,您可以 {{ someData }}
@Bert_Evans 是对的,您可以在 'data' 中进行一些基本计算,但它们应该是同步的,因为反应性在 Vue 中的工作方式。
我正在尝试从休息中获取一些数据 api。然而,结果 this.someData 仍未定义。
我的组件如下
<template>
<div class="list">
<h1>List</h1>
<pre>msg: {{msg}}</pre>
</div>
</template>
<script>
import Vue from 'vue'
import VueResource from 'vue-resource'
Vue.use(VueResource)
export default {
name: 'list',
data () {
this.$http.get('http://localhost:8080/api/posts/filter?username=tons').then(response => {
// get body data
this.someData = response.body
console.log(this.someData)
}, response => {
// error callback
})
return {
msg: this.someData + 'somedata'
}
}
}
</script>
有人知道我做错了什么吗?
'data' 应该只是属性。在 'methods' 处你可以获取一些东西,然后填充你的 'data' 属性。
正确的代码如下所示:
<script>
export default {
data: function() {
return {
someData: null
}
},
methods: {
getData: function() {
// fetch here
this.someData = response.body;
}
},
mounted() {
this.getData(); // or trigger by click or smth else
}
}
</script>
在您的模板中,您可以 {{ someData }}
@Bert_Evans 是对的,您可以在 'data' 中进行一些基本计算,但它们应该是同步的,因为反应性在 Vue 中的工作方式。