我有一张用户档案卡,可以在盒子里显示不同的测量值,比如温度、体积和重量。
目前,我正在从axios GET请求中获取每个用户的名称,然后我需要获取该数据中的ID,并使用该ID执行另一个GET请求,该ID为我提供性能数据,在该数据中,我获得了一个性能ID,我需要使用该ID来获取最终的测量数据数组。
我想知道如何才能仅为具有性能Id的用户发出最后一个GET请求,然后获取测量数据并显示在每个测量框的每个用户配置文件{具有测量数据)中?
它看起来像这样:
GET api/profiles
,返回:"data": [
{
"id": 1,
"name": "Joe",
},
{
"id": 2,
"name": "Max",
},
<div class="outer" v-for="(item, index) in profiles" :key="item.id" >
<p> User Name: {{ item.name }}</p>
mounted() {
this.$store.state.profiles.forEach((item, index) => {
axios.get('api/performance/' + this.profile[index].id)
.then(response => {
this.performanceId = response.data.data.id
})
});
}
"data": {
"id": 1,
"profile_id": 2,
.....other keys and values
}
"data": {
"profileID": "2",
"perfomanceID": "1",
"data": [
{
"key": "temp",
"data": "37",
},
{
"key": "vol",
"data": "22",
},
{
"key": "weight",
"data": "200",
},
然后,我希望每个数据点显示在框中:
<div class="outer" v-for="(item, index) in profiles" :key="item.id" >
<p> User Name: {{ item.name }}</p>
<div class="box 1">Temperature: </div>
<div class="box 2">Volume: </div>
<div class="box 3">Weight: </div>
</div>
It would like this for Max's profile:
User Name: Max
Temperature: 37
Volume: 22
Weight: 200
任何帮助都将不胜感激,谢谢!
如果我没弄错的话,我会这么做的。
假设除了先发出请求之外,没有办法检查用户是否具有性能ID,那么您可以拥有一个data()
prop,例如,默认情况下,它被设置为false
。一旦您查询API的性能ID,您就可以检查它是否返回了任何内容,以及它是否只是将hasPeractice细节
设置为true
。然后,您只需使用v-if
或v-show
指令来呈现配置文件的性能细节部分。
像这样的东西
data() {
return { hasPerformanceDetails: false }
},
created() {
this.populateProfile()
},
methods: {
populateProfile() {
// Call the measurements endpoint and check if response is empty or not
if (apiResponse != null) {
this.hasPerformanceDetails = true;
}
}
}
在你的代码中
<div class="outer" v-for="(item, index) in profiles" :key="item.id" >
<p> User Name: {{ item.name }}</p>
<div v-if="hasPerformanceDetails" class="performance-wrapper">
<div class="box 1">Temperature: </div>
<div class="box 2">Volume: </div>
<div class="box 3">Weight: </div>
</div>
</div>
请记住,最好在created()
hook上调用API,因为这是在任何东西呈现或装入DOM之前。参考此答案。Vue将执行该请求,并且只有在所有数据都存在后,它才会退出created()
钩子并修改data()
中的项目。
你也可以使用v-show
.v-if
将直接不呈现任何内容,v-show
将具有超文本标记语言中的部分,但使用show隐藏它:无
或者,如果您希望性能包装器div总是在那里,但只是空的,您可以使用三元运算符代替
<div class="outer" v-for="(item, index) in profiles" :key="item.id" >
<p> User Name: {{ item.name }}</p>
<div class="box 1">Temperature: {{ hasPerformanceDetails ? item.temp : "Not available" }}</div>
<div class="box 2">Volume: {{ hasPerformanceDetails ? item.volume : "Not available" }}</div>
<div class="box 3">Weight: {{ hasPerformanceDetails ? item.weight : "Not available" }}</div>
</div>
我正在创建一个电子学习网站,那里有你可以选择的课程卡片。这是我的密码 课程ist.vue 我的问题是我无法从API链接获取数据- 我想知道我做错了什么。我也尝试使用{{list}}来获取数据,但没有成功。我现在的目标是得到所有的数据,即使它看起来很乱。抱歉我英语不好,谢谢你!
下面的代码在web浏览器中工作,我可以使用v-for检索json数据: 所以我尝试在nativescript vue与ListView这样: 但它根本无法检索数据或错误消息。 有什么要我补充的吗? 我正在路由器上使用NativeScip vue cli模板,因此我已经插入了以下依赖项: 从axios导入axios; 从“vue axios”导入VueAxios; Vue.use;
我正在尝试使用Vue和Axios的GET请求从我们的业务服务器获取一些数据。但是,我遇到了401未经授权的错误。当我使用内部号登录时,我能够使用RESTED获取这些数据。我已经看了这篇文章:如何使用axios发送Basic Auth,但没有解决方案对我有用。这是我发出get请求的代码: 我也尝试过不使用“标题”。这是错误消息: 希望有人有主意,因为我不知所措。
大家好,所以我无法将此API中的数据显示到Vue引导表中。 这给了我一个错误:“属性或方法“products”未在实例上定义,但在呈现期间被引用。请通过初始化属性,确保此属性在数据选项或基于类的组件中是被动的。” 问题出在我的应用程序中。vue I已在实例上定义了产品。所以我不明白为什么它会给我这个错误。 这是我的应用程序。vue 分页组件 如果有人能帮助我或指导我,那将是非常感谢的
我试图从我的对象中得到一些东西,但我写的东西不起作用。有什么建议吗?谢谢
问题内容: 我正在用Java写一个简单的编辑文本。当用户打开文件时,将在中打开文件。我执行以下操作来保存打开的文件: 将从何处接收值,例如:。 我有一堂课: 现在,在此类中,我需要获取存储在中的值。我怎样才能做到这一点? 问题答案: 要从地图获取所有值: 要从地图中获取所有条目,请执行以下操作: Java 8更新: 处理所有值: 要处理所有条目: