您好,我正在尝试使用异步函数从控制器获取信息,我在组件中执行此操作:
我需要发送参数,因为我已经看到了与 Mounted() 类似的答案,但它们不会向函数发送参数,因此如果我不添加参数,它将无法工作。
查看部分:
<tbody> <tr v-for="(post, index) in last_month_day" v-bind:index="index"> <td>{{ index+1 }}</td> <td v-for="(post2, index2) in branch_office_posts" v-bind:index="index2"> $ {{ getTotalIncomes(index+1, post2.branch_office_id) }} </td> </tr> </tbody>
我需要将这两个参数传递给函数:index+1 和 post2.branch_office_id
然后我在方法部分执行此操作:
methods: { async TotalIncomeData(day, branch_office_id) { const response = await fetch('/api/collection/total/'+day+'/'+branch_office_id+'?api_token='+App.apiToken) return response; }, getTotalIncomes(day, branch_office_id) { return this.TotalIncomeData(day, branch_office_id); },
它有效,我的意思是如果使用 console.log() 检查响应它会得到一个值。 我知道我不能在视图中使用异步等待函数,这就是为什么我使用另一个函数在你可以看到的内部调用这个函数,但我不知道为什么我不直接在视图中使用它,它说:
$ [object Promise]
所以它没有显示值,所以我想知道为什么?代码有什么问题?我真的需要帮助,谢谢!
您可以使用
data
属性来存储响应。然后调用该函数发出请求,UI 中绑定到数据的任何内容都将相应更新。您缺少的部分是
.then(...)
,它在fetch
文档。例如:
现在,在您的 UI 中,检查响应是否已完成返回,
v-if="response"
,然后根据需要显示它。