函数调用未定义的var

时间:2019-01-25 19:47:18

标签: javascript html google-cloud-firestore undefined

我的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);
});  

1 个答案:

答案 0 :(得分:3)

在fillTemplate()函数内部,您正在请求对象{}

您需要替换:-

function fillTemplate({ table_name, id }) {

使用

function fillTemplate(table_name, id) {

这应该可以解决您遇到的问题。