[英]How to assign array data retrieved from state to v-model of array data object in vue.js?
我有一個使用vuex getters從vuex狀態檢索的申請人列表。 從前端開始,我想將它們各自的結果記錄為數組並提交結果。 但我無法將申請人ID分配給v模型。
我試過使用數組和數組對象,但是不起作用。 我試圖在頁面上循環創建申請人列表,並將其分配給Vue數據中聲明的數組數據。
模板代碼
<template>
<table style="margin-left:10%;">
<tr>
<th>#</th>
<th>Full Name</th>
<th>Result</th>
</tr>
<tr
v-for="(applicant, key) in getApplicants"
:key="applicant.applicant_id"
>
<td>{{ key + 1 }}</td>
<td>
{{ applicant.first_name }} {{ applicant.middle_name }}
{{ applicant.last_name }}
<b-form-input v-model="record.applicant_id[key]"></b-form-input>
</td>
<td>
<b-form-input v-model="record.exam_result[key]"></b-form-input>
</td>
</tr>
</table>
<template>
腳本代碼
data() {
return {
update: false,
record: {
job_vacancy_id: null,
exam_type_id: null,
applicant_id: [],
exam_result: []
}
};
methods:{
save() {
var object = {
job_vacancy_id: this.record.job_vacancy_id,
manpower_requisition_id: this.manpower_requisition_id,
applicants_id: this.applicants_id,
exam_result: this.record.exam_result
};
console.log(object);
},
populate() {
let appliacnts = this.getApplicants;
for (var i = 0; i <= appliacnts.length; i++) {
this.record.applicant_id = this.appliacnts.applicant_id[i];
}
}
},
created() {
this.populate();
}
有幾個錯誤:
this.record.applicant_id
是一個數組,因此您需要在=
之前結尾處有一個索引。 this.appliacnts
不應具有this
。 this.appliacnts.applicant_id[i]
的索引在錯誤的部分。 它應該在applicant_id
之前。 appliacnts
拼寫不正確。 但是,它是一致的,因此不會引起任何問題。 更正我們得到的一切:
populate() {
const applicants = this.getApplicants;
for (var i = 0; i <= applicants.length; i++) {
this.record.applicant_id[i] = applicants[i].applicant_id;
}
}
但是,這並不是一個特別安全的實現。 如果再次調用它並且數組更短,它將把舊條目保留在數組中。 我更傾向於這樣寫:
populate() {
const applicants = this.getApplicants;
this.record.applicant_id = applicants.map(applicant => applicant.applicant_id);
}
我認為應該是this.record.applicant_id[i] = appliacnts.applicant_id[i]
populate() {
let appliacnts = this.getApplicants;
for (var i = 0; i <= appliacnts.length; i++) {
this.record.applicant_id[i] = appliacnts.applicant_id[i];
}
}
},
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.