JS Applications Retake Exam- Local Orphanages
Здравейте, имам проблем със задачата Local Orphanages. Гърмят последните три теста, а локално всички минават без проблем. Гледах решението от автора, но не мога да разбера от къде ми идва грешката. Ако някой може да помогне ще е супер.
линк за сваляне на архивираните ми файлове файлове - https://github.com/gAtStefanova/JS_Applications_Local_Orphanages
линк към judge - https://judge.softuni.org/Contests/3435/JS-Applications-Retake-Exam-10-April-2022.
Благодаря предварително.
Пропуск пропуснала съм да го махна, но и като го махнах пак продължават да не минават. В такива ситуации какво се прави. Възможно е да се случи и на изпит, а локалните тестове при мен не дават грешка и визуално при тестване на логиката за бутона donate всичко работи коректно както в условието - скрива, показва бутона корекно добавя дарение и т.н.
П.С.
Имай също предвид, че при задание в което имаш <ul><li /></ul> и трябва примерно да премахнеш li елемента, а ти премахнеш ul елемента. То при визуализацията в browsera няма да хванеш никаква разлика и за теб чисто визуално кода ти ще изпълнява условието, но в действителност при чек от judj-а той ще търси празният ul елемент, а него няма да го има. Ти имаш очакваният визуален ефект, но не и очакваният код.
В details.js имаш забравен един - console.log(donations,hasDonated);
Пробвах не гърми заради console.log. И на deleteBtn бях забравила href='javascript:void(0),но и това не е
Казах ти, че става въпрос за нещо тревиално което не се вижда, но го има в детаилс. При не логнат юзер в кода на автора имаш:
<div class="btns">
${isOwner ? html `<a href="/edit/${post._id}" class="edit-btn btn">Edit</a>
<a href="javascript:void(0)" @click=${onDelete} class="delete-btn btn">Delete</a>` : ''}
${(() => {
if (didUserDonate == 0) {
if (isLoggedIn && !isOwner) {
return html`<a @click=${onClickDonation}href="javascript:void(0)" class="donate-btn btn">Donate</a>`
}
}
})()}
</div>,
а в твоя код:
${
isOwner
? html`<div class="btns">
<a href="/edit/${post._id}" class="edit-btn btn"
>Edit</a
>
<a @click=${onDelete} class="delete-btn btn"
>Delete</a
>
</div> `
: ""
}
${showDonationBtn ? html`
<!--Bonus - Only for logged-in users ( not authors )-->
<a href="javascript:void(0)"
@click=${onDonate}
class="donate-btn btn"
>Donate</a
>
`
: ""
}
<div class="btns"> този див ти е в проверката и при визуализацията на страницата не излиза в ДОМ дървото, когато обследваш browsera с F12- при първият код div-а съществува, но не се визуализира бутон, а при теб го няма. Пак казвам при не логнат потребител т.е. нямаш потребител, а просто разглеждаш страницата.
П.С.
Т.е. липсва ти "контейнера" на бутона той трябва да е в дом дървото, а го няма, примера с li-то ;) от горе.
Пробвала съм го. Пак гърми. Първоначалното ми решиние беше да си съществува контейнера както ти казваш но пак не стана затова го пробвах да го вкарам вътре
Пробвах да приложа и логиката от решението на автора но продължава да гърми
Пак казвам истината е в детайлите трябва подробно да обследваш кода, какво как защо и т.н. може да имаш проверки които не съотвестват и други пропуски веднага ти казвам още един, примерно в кода на автора в auth.js има проверка:
if (!password || !email) {
return alert('All fields are required!');
}
а при теб:
if (email == "" || password == "") {
return alert('All field are required!')
}
т.е. ако имаш undefined няма да ти влезе в alert-а.
Разгледай по-подробно и ще откриеш твоя проблем. Истината е някъде там.
В create.js автора търси несъществуващ елемент:
if (Object.values(post).some(x => !x)) {
return alert('All fields are required!')
};
а ти:
if(post.title==''||post.description==''||post.imageUrl==''||post.address==''||post.phone==''){
return alert('All field are required!')
}
празен стринг което само по себеси е undefined, но ако в действителност получиш "undefine" то е различно от празен стринг и няма да изпълниш проверката!
Успех!
П.С.
Ти имаш пълният брой точки 115 :)