Loading...
g.stefanova avatar g.stefanova 4 Точки

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.

Благодаря предварително.

Тагове:
1
JavaScript Applications 31/07/2022 04:16:38
Tzigoriyn avatar Tzigoriyn 44 Точки

Здравей, грешките в такива случаи обикновенно са от разликата във версиите при които те тества JUDGE и това което поддържа твоят browser. Трябва да съобразиш това, имайки предвид, че обичайно последният е актуализиран с последни весии на JS за разлика от тестовете.

Друго което забелязъх е че ипортваш:

import { login, logout } from "./api/users.js";

login в твоя app.js, но не го ползваш никъде.

Това грешка ли е или пропуск?

Успех!

1
31/07/2022 11:24:40
g.stefanova avatar g.stefanova 4 Точки

Пропуск пропуснала съм да го махна, но и като го махнах пак продължават да не минават. В такива ситуации какво се прави. Възможно е да се случи и на изпит, а локалните тестове при мен не дават грешка и визуално при тестване на логиката за бутона donate всичко работи коректно както в условието - скрива, показва бутона корекно добавя дарение и т.н. 

1
31/07/2022 11:17:59
Tzigoriyn avatar Tzigoriyn 44 Точки

П.С.

Имай също предвид, че при задание в което имаш <ul><li /></ul> и трябва примерно да премахнеш li елемента, а ти премахнеш ul елемента. То при визуализацията в browsera няма да хванеш никаква разлика и за теб чисто визуално кода ти ще изпълнява условието, но в действителност при чек от judj-а той ще търси празният ul елемент, а него няма да го има. Ти имаш очакваният визуален ефект, но не и очакваният код.

В details.js имаш забравен един - console.log(donations,hasDonated);

1
31/07/2022 12:00:29
g.stefanova avatar g.stefanova 4 Точки

Пробвах не гърми заради console.log. И на deleteBtn бях забравила href='javascript:void(0),но и това не е

1
Tzigoriyn avatar Tzigoriyn 44 Точки

Казах ти, че става въпрос за нещо тревиално което не се вижда, но го има в детаилс. При не логнат юзер в кода на автора имаш:

<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-то ;) от горе.

1
31/07/2022 13:22:09
g.stefanova avatar g.stefanova 4 Точки

Пробвала съм го. Пак гърми. Първоначалното ми решиние беше да си съществува контейнера както ти казваш но пак не стана затова го пробвах да го вкарам вътре

Пробвах да приложа и логиката от решението на автора но продължава да гърми

1
31/07/2022 13:36:01
Tzigoriyn avatar Tzigoriyn 44 Точки

Пак казвам истината е в детайлите трябва подробно да обследваш кода, какво как защо и т.н. може да имаш проверки които не съотвестват и други пропуски веднага ти казвам още един, примерно в кода на автора в 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 :)

1
31/07/2022 15:23:01
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.