我的javascript代码中具有此功能:
function fillTemplate({ table_name, id }) {
console.log("ID OF TABLES " + table_name);
return `
<div class="noten_tabelle_permission" id="noten_tabelle_permission">
<h1 id="member_name">${id}</h1>
<table id="${table_name}" style="width:100%">
<tr>
<th>Fach</th>
<th>mündlich</th>
<th>Klausur</th>
</tr>
<!-- Make content with js code -->
</table>
</div>
`;
}
当我使用this(例如)fillTemplate("grade_table" + table_number, doc.id);
调用此函数并将table_name输出到控制台时,它是未定义的。为什么以及如何解决此问题?
当您需要完整的代码来理解或修复步骤时,请参见以下完整代码段:
db.collection("classes").doc(data.readGrades).get().then(function(doc) {
if (doc.exists) {
const data = doc.data();
const members = data.members;
members.reduce((chain, el) => {
table_number++;
const html = fillTemplate("grade_table" + table_number, doc.id);
document.getElementById("main_padding").insertAdjacentHTML('beforeend', html);
return chain.then(() =>
db.collection("users").doc(el).collection("grades").get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
const data = doc.data();
addToTable("grade_table" + table_number, doc.id, data.mdl, data.klu);
});
})
)
}, Promise.resolve());
} else {
console.log("No such document!");
}
}).catch(function(error) {
console.log("Error getting document:", error);
});
答案 0 :(得分:3)
在fillTemplate()函数内部,您正在请求对象{}
您需要替换:-
function fillTemplate({ table_name, id }) {
使用
function fillTemplate(table_name, id) {
这应该可以解决您遇到的问题。