【发布时间】:2021-07-25 23:38:49
【问题描述】:
我正在尝试在通过 JSON 获得的 Bootstrap-Vue 表单选择中设置一些对象。 JSON 由来自以下字段的教师对象组成:
[
{
"id": 1,
"name": "John",
"surname": "Doe",
"email": "john.doe@gmail.com"
}
]
我正在尝试将姓名和姓氏放在选择列表中,即全名。
我已经设法通过计算属性通过处理列表来做到这一点。 但是现在我希望当我选择老师时,根据所选老师过滤课程列表。
为此,我需要教师的电子邮件,但我无法恢复该电子邮件,已处理教师以获得全名。 因此,我什至无法根据所选教师更新课程列表。
这是模板的代码:
<b-form-group
id="input-group-3"
label="Docente:"
label-for="input-3"
>
<b-form-select
v-model="teacher"
:options="teachers"
value-field="item"
text-field="fullName"
required
@change="filterCourse"
></b-form-select>
<div class="mt-3">
Selected: <strong>{{ teacher }}</strong>
</div>
</b-form-group>
这是脚本代码:
import { mapGetters, mapActions } from "vuex";
export default {
data() {
return {
teacher: "",
course: "",
};
},
created: function() {
this.GetActiveTeachers();
this.GetActiveCourses();
},
computed: {
...mapGetters({
ActiveTeacherList: "StateActiveTeachers",
ActiveCourseList: "StateActiveCourses",
FilteredTeacherList: "StateTeacherByCourse",
FilteredCourseList: "StateCourseByTeacher",
}),
teachers: function() {
let list = [];
this.ActiveTeacherList.forEach((element) => {
let teacher = element.name + " " + element.surname;
list.push(teacher);
});
return list;
},
},
methods: {
...mapActions([
"GetActiveTeachers",
"GetActiveCourses",
"GetCourseByTeacher",
"GetTeacherByCourse",
"AssignTeaching",
]),
async filterCourse() {
const Teacher = {
teacherEmail: "john.doe@gmail.com", // For testing purpose
};
try {
await this.GetCourseByTeacher(Teacher);
} catch {
console.log("ERROR");
}
},
async filterTeacher() {
const Course = {
title: "Programming", // For testing purpose
};
try {
await this.GetTeacherByCourse(Course);
} catch {
console.log("ERROR");
}
},
},
};
【问题讨论】:
标签: javascript vue.js bootstrap-4 bootstrap-vue