Все страницы участников, созданные с помощью Mustache, имеют одинаковую информацию об одном члене. - PullRequest
0 голосов
/ 07 марта 2020

Я хочу создать страницы участника с усами на основе данных из Firebase. Сейчас я могу создать страницу для одного участника, но все остальные участники имеют ту же информацию, что и этот участник ... Допустим, у меня есть 4 участника, у меня должно быть 4 разные страницы, но сейчас только один может быть найден (один из членов ... может быть, последний документ коллекции или первый документ коллекции.)

Есть идеи, что мне следует изменить?

Вот мой javascript скрипт:

В первой части я показываю всех участников на одной странице. У каждого из участников есть ссылка «связаться с ним», которая должна появиться на этой странице участника.

function displayMembers(collec_name) {

    var theDiv = document.getElementById('show-all-members');

    firestore.collection(collec_name).get().then(snapshot => {
            snapshot.forEach(doc => {

// for each member, we display some information
// We have a "contact him" link, that shoud bring us in a Mustache generated page with all the member informations


                     .... Lot of code before ...

                var child_div_5_1 = document.createElement("div")
                child_div_5_1.setAttribute("class", "card-header-a");
                var h2_1 = document.createElement("H2")
                h2_1.setAttribute("class", "card-title-a");
                var a_1 = document.createElement("a")
                a_1.setAttribute("href", "#");
                var text_firstname = document.createTextNode(firstname);
                var br = document.createElement("br");
                var text_lastname = document.createTextNode(lastname);
                a_1.appendChild(text_firstname);
                a_1.appendChild(br);
                a_1.appendChild(text_lastname);
                h2_1.appendChild(a_1);
                child_div_5_1.appendChild(h2_1);
                var child_div_5_2 = document.createElement("div")
                child_div_5_2.setAttribute("class", "card-body-a");

// BELOW IS THE IMPORTANT PART

                var a_2 = document.createElement("a")
                a_2.setAttribute("href", "coach-informations.html");
                a_2.setAttribute("class", "link-a");
                a_2.oncomplete = displayMemberPage(doc.data());
                a_2.appendChild(document.createTextNode("Contact him"));

// I can't have a specific html page for each member. Each member has the same data content from one of the document of the whole collection.

                var span = document.createElement("span")
                span.setAttribute("class", "ion-ios-arrow-forward");
                a_2.appendChild(span);
                child_div_5_2.appendChild(a_2);


                 ... Lot of code after ... 

А вот и функция displayMemberPage, которая должна генерировать страницу с усами и данными члена.

function displayMemberPage(firebase_data) {

var data = {

    FIREBASE_DATA_NAME: firebase_data.firstname + ' ' + firebase_data.lastname,
    FIREBASE_DATA_CITY: firebase_data.ville,
    FIREBASE_DATA_PROFILEPIC: firebase_data.profilepic,
    FIREBASE_DATA_EMAIL: firebase_data.email
    };

template = ` all html template `


var html = Mustache.render(template, data);
$('#idWhereIaddresult').html(html);
};

...