【发布时间】:2019-09-03 09:31:39
【问题描述】:
在 Vue js 中使用 v-for 循环。我正在循环遍历readingTasks 数据对象,该对象正确地从下面的数据中产生了两个结果。
readingTasks:Array[2]
0:Object
enabled:true
newunit:-1
task:"The part 3 guide"
unit:-1
unit_task_id:27
url:"#"
1:Object
enabled:true
newunit:-1
task:"The part 3 training units"
unit:-1
unit_task_id:28
url:"#"
我不确定的是每个结果如何,我如何运行另一个Axios 数据库调用来显示读取任务是否完成。比如第一条记录,完整状态应该是真(unit_task_id:27),第二条记录应该是假。
userTasks:Array[1]
0:Object
complete:true
enabled:true
newunit:-1
task:"The part 3 guide"
unit:-1
unit_task_id:27
unit_task_user_id:21
<ul>
<li v-for="task in readingTasks">
{{task.task}}
//trying to call a function that does an Axios call passing in parameters from readingTasks
{{getUserTaskByUnit(task.unit, task.unit_task_id)}}
<template v-for="usertask in userTasks">
{{usertask.complete}}
</template>
</li>
</ul>
//javascript if its useful
data: {
readingTasks: [],
userTasks: []
},
mounted() {
this.lastUnit();
},
methods: {
//functons
lastUnit: function() {
this.tasks();
},
tasks: function() {
var self = this;
var unit = this.unit;
axios.get("/WebService/units.asmx/GetTasks?unit=" + unit).then(function(response) {
self.readingTasks = response.data;
})
.catch(function(error) {
console.log(error);
})
.then(function() {
});
},
getUserTaskByUnit: function(unit, unitTaskId) {
var self = this;
axios.get("/WebService/units.asmx/GetUserTasks?unit=" + unit + "&unitTaskId=" + unitTaskId).then(function(response) {
self.userTasks = response.data;
})
.catch(function(error) {
console.log(error);
})
.then(function() {});
}
这段代码似乎接近于做正确的事情,但是{{usertask.complete}} 在两组结果的真假之间闪烁。就像被困在一个循环中一样。
我希望第一个结果在这里显示 True,而第二个结果显示 False。
第 3 部分指南 - 是的
第 3 部分训练单元 - 错误
【问题讨论】:
-
你的
userTasks来自哪里? -
它们通过 axios 调用来自 sql server 数据库:
-
axios.get("/WebServiceCall/units.asmx/GetUserTasks?unit=" + unit + "&unitTaskId=" + unitTaskId).then(function(response) { self.userTasks = response.data ;
-
它们在一个单独的数据库表中用于读取任务
-
尝试在 v-for 循环中从以下代码调用 userTasks:{{getUserTaskByUnit(task.unit, task.unit_task_id)}}