javascript - 具有特殊 id 的 Vue-js 调用对象
问题描述
我是 Vue-js 的新手,真的需要你的帮助:
在我的 Django 项目中,我有 2 个模型:该患者的 Patient 和 MedCard。它们通过外键连接。我想实现这样的功能:在“患者”页面上,我有患者列表,然后当我按下某人的名字时,我想查看他/她的 MedCard。
这是我的代码,但是当我推送姓名时,我会从 MedCard 模型中获取所有患者的所有记录:
患者.vue:
<div v-for="patient in patients">
<h3 @click="openMedCard(patient.id)">{{patient.surname}} {{patient.name}}</h3>
<p>{{patient.birth_date}}</p>
</div>
<div
<MedCard v-if="med_record.show" :id="med_record.id"></MedCard>
</div>
export default {
name: 'Patient',
components: {
MedCard,
},
data() {
return {
patients: '',
med_record: {
patient: '',
show: false,
}
}
}
和来自 Patient.vue 的方法:
methods: {
openMedCard(id) {
this.med_record.patient = id
this.med_record.show = true
}
医疗卡.vue:
<template>
<mu-row v-for="med_record in med_records">
<h3>Doc – {{med_record.doc.surname}}{{med_record.doc.name}}</h3>
<p>{{med_record.patient.surname}}</p>
<p>{{med_record.record}}</p>
<small>{{med_record.date}}</small>
</mu-row>
</template>
export default {
name: 'MedCard',
props: {
id: '',
},
data() {
return {
med_records: '',
}
},
methods: {
loadMedCard() {
$.ajax({
url: "http://127.0.0.1:8000/api/v1/hospital/med_card/",
type: "GET",
data: {
id: this.id,
patient: this.patient
},
success: (response) => {
this.med_records = response.data.data
}
})
}
}
}
loadMedCard() 以 JSON 格式为我提供所有 MedCard 的信息,如下所示:
{
"data": {
"data": [
{
"id": 1,
"patient": {
"id": 1,
"surname": "KKK",
"name": "KKK",
"patronymic": "LLL",
"birth_date": "1999-07-07",
"sex": "F",
"phone": "no_phone",
"email": "no_email"
},
"doc": {
"id": 3,
"surname": "DDD",
"name": "DDD",
"patronymic": "DDD",
"education": "d",
"category": "2",
"sex": "m",
"phone": "no_phone",
"email": "no_email"
},
"record": "test text",
"date": "2020-06-09"
}...]
我将不胜感激任何帮助!
解决方案
因此,当您只要求一位确切的患者时,API 会返回多位患者的数据。首先过滤的 API 肯定有问题。因此,您可以在客户端的MedCard.vue
组件中过滤数据。首先,此组件必须仅显示一名患者的数据,因此v-for="med_record in med_records"
不需要。您的med_records
属性可以只是一个对象而不是数组:
data() {
return {
med_record: {},
}
}
在您的 API 调用的成功解析方法中,您可以只过滤您需要的数据并将其存储在med_record
success: (response) => {
this.med_records = response.data.data.find((patient)=> { return patient.id === this.id})
}
如果要将所有数据存储在 中med_records
,则可以创建计算属性并在那里应用相同的过滤。
我希望这有帮助。
推荐阅读
- r - 如何使用 r 中的管道工在同一请求中返回图像和数据
- java - 进度计数未显示 100%
- node.js - Nodemon 错误:已达到文件观察者数量的系统限制
- javascript - 使用 JavaScript 为事件侦听器添加冷却时间
- c# - 自动代理切换器 WInform (C#)
- django - 我们可以在 Django 的 models.py 中定义数据库名称吗?
- vba - 如何从 OneNote 表格中获取数据到 Outlook 宏?
- leaflet - 在 TomTom 地图上显示路线的总道路距离
- c# - 由两个对象组成的对象
- html - 如何使用 css 正确实现边框图像?