-
Notifications
You must be signed in to change notification settings - Fork 99
Hw#2 java #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Hw#2 java #4
Conversation
| </head> | ||
| <body> | ||
| <header> | ||
| <button class="btn-cart" onclick="sum()">Cart</button> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Забывайте про инлайн обработчики в html - это прям совсем совсем плохо. Общее правило - не используем их, если есть возможность повесить обработчик в коде. Только если какой-то уникальный случай, когда нет такой возможности, то можем себе это позволить, но это исключительные ситуации
| let sum= () =>{ | ||
| let sum = 0; | ||
|
|
||
| for(let products of data){ | ||
| sum +=products.price | ||
| } | ||
| return sum; | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Так а где классы у вас? Тут в целом да, метод суммирует и работает верно, но надо было реализовывать его в классе каталога.
| <button class="max" onclick="renderBurgerX()">Большой Бургер</button> | ||
| <button class="min" onclick="renderBurgerN()">Маленький Бургер</button> | ||
| </aside> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Тут также, надо избавиться от таких обработчиков
| @@ -0,0 +1,126 @@ | |||
| const data = [ | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Говорил, что делаем в ООП. Нам скорее важно тренировать ООП и архитектуру, а не саму реализацию, так как функционально если делать, то все довольно просто
| chees ={ titleA: 'Сыр', idA: 1, priceA: 10, coloriesA:20 }, | ||
| salat ={ titleA: 'Салат', idA: 2, priceA: 20, coloriesA:5 }, | ||
| potates ={ titleA: 'Картошка', idA: 3, priceA: 15, coloriesA:10 }, | ||
| spices ={ titleA: 'Специи', idA: 4, priceA: 15, coloriesA:0 }, | ||
| mionez ={ titleA: 'Майонез', idA: 5, priceA: 20, coloriesA:5} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Что с синтаксисом? У вас массив, в нем нет никаких ключей и нельзя использовать = в том смысле как у вас.
const data = [
{ titleA: 'Сыр', idA: 1, priceA: 10, coloriesA:20 },
{ titleA: 'Салат', idA: 2, priceA: 20, coloriesA:5 },
{ titleA: 'Картошка', idA: 3, priceA: 15, coloriesA:10 },
{ titleA: 'Специи', idA: 4, priceA: 15, coloriesA:0 },
{ titleA: 'Майонез', idA: 5, priceA: 20, coloriesA:5}
]
Вот так это должно выглядеть - срочно повторяйте массивы. Если вы хотели каким-то ключам присвоить объекты - используйте не массив, а объект (только все равно не =, а : будет между ключем и значением).
И что с неймингом, зачем везде А в конце названий свойств
| <h3>${titleA}</h3> | ||
| <p>${priceA} Рублей</p> | ||
| <p>${coloriesA} Коллорий</p> | ||
| <button id="fill-btn" onclick="renderSpice${idA}()"><b>ДОБАВИТЬ</b></button> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Первое и самое главное это так не сработает синтаксически просто. Поэтому сразу отказываемся от такой реализации. Попробуйте придумать общий метод
А если станет больше опций, то под каждую будете свой метод добавления делать? Нет, так не пойдет. Плюс зачем при выборе что-то отображать? Сначала надо позволить выбрать один размер, одну начинку и любые топпинги, и только после нажатия на кнопку собрать - создать экземпляр класса бургер, который будет определять, что выбрано на странице и на основе этого определять какие свойства в нем будет, а после считать свою стоимость и калорийность
| function renderSpice1(){ | ||
| const renderId = '<p>Сыр</p>' | ||
| document.querySelector('.fill-list').innerHTML += renderId | ||
| document.querySelector('.summa').innerHTML += sums() | ||
| } | ||
| function renderSpice2(){ | ||
| const renderId = '<p>Салат</p>' | ||
| document.querySelector('.fill-list').innerHTML += renderId | ||
|
|
||
| } | ||
| function renderSpice3(){ | ||
| const renderId = '<p>Картошка</p>' | ||
| document.querySelector('.fill-list').innerHTML += renderId | ||
|
|
||
| } | ||
| function renderSpice4(){ | ||
| const renderId = '<p>Специи</p>' | ||
| document.querySelector('.fill-list').innerHTML += renderId | ||
|
|
||
| } | ||
| function renderSpice5(){ | ||
| const renderId = '<p>Майонез</p>' | ||
| document.querySelector('.fill-list').innerHTML += renderId | ||
|
|
||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Это все дублирование, все функции делают по сути одно и то же, добавляют какой-то заголовок в иннерХТМЛ - так почему не передавать необходимый заголовок аргументом?
| sum +=products.priceA | ||
| } | ||
| return sum; | ||
| } No newline at end of file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Сейчас у вас нет как таковых классов, не создаются объекты, то есть у вас просто генерируется верстка и (по задумке вашей) добавляется в определенные блоки по кликам. Причем нет ограничений, я одну начинку могу 10 раз добавить, могу все три начинки добавить - в ТЗ (то есть в задании) четко были прописаны условия и их надо соблюдать.
Также не стоит реализовывать функционально, нам важно тренироваться в ООП, важно создавать в итоге объект бургера у которого будут определенные свойства и методы бургер, работать именно с ним. В итоге функционально вы будете писать в 1% рабочего кода, а 99% кода будет на ООП. Поэтому стоит переделать с использованием классов. Если совсем тяжело - попробуйте хорошо проработать разбор ДЗ.
Домашка в папке HW#2