Conversation
| </head> | ||
| <body> | ||
| <header> | ||
| <button class="btn-cart" onclick="sum()">Cart</button> |
There was a problem hiding this comment.
Забывайте про инлайн обработчики в html - это прям совсем совсем плохо. Общее правило - не используем их, если есть возможность повесить обработчик в коде. Только если какой-то уникальный случай, когда нет такой возможности, то можем себе это позволить, но это исключительные ситуации
| let sum= () =>{ | ||
| let sum = 0; | ||
|
|
||
| for(let products of data){ | ||
| sum +=products.price | ||
| } | ||
| return sum; | ||
| } |
There was a problem hiding this comment.
Так а где классы у вас? Тут в целом да, метод суммирует и работает верно, но надо было реализовывать его в классе каталога.
| <button class="max" onclick="renderBurgerX()">Большой Бургер</button> | ||
| <button class="min" onclick="renderBurgerN()">Маленький Бургер</button> | ||
| </aside> |
There was a problem hiding this comment.
Тут также, надо избавиться от таких обработчиков
| @@ -0,0 +1,126 @@ | |||
| const data = [ | |||
There was a problem hiding this comment.
Говорил, что делаем в ООП. Нам скорее важно тренировать ООП и архитектуру, а не саму реализацию, так как функционально если делать, то все довольно просто
| 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.
Что с синтаксисом? У вас массив, в нем нет никаких ключей и нельзя использовать = в том смысле как у вас.
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.
Первое и самое главное это так не сработает синтаксически просто. Поэтому сразу отказываемся от такой реализации. Попробуйте придумать общий метод
А если станет больше опций, то под каждую будете свой метод добавления делать? Нет, так не пойдет. Плюс зачем при выборе что-то отображать? Сначала надо позволить выбрать один размер, одну начинку и любые топпинги, и только после нажатия на кнопку собрать - создать экземпляр класса бургер, который будет определять, что выбрано на странице и на основе этого определять какие свойства в нем будет, а после считать свою стоимость и калорийность
| 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.
Это все дублирование, все функции делают по сути одно и то же, добавляют какой-то заголовок в иннерХТМЛ - так почему не передавать необходимый заголовок аргументом?
| sum +=products.priceA | ||
| } | ||
| return sum; | ||
| } No newline at end of file |
There was a problem hiding this comment.
Сейчас у вас нет как таковых классов, не создаются объекты, то есть у вас просто генерируется верстка и (по задумке вашей) добавляется в определенные блоки по кликам. Причем нет ограничений, я одну начинку могу 10 раз добавить, могу все три начинки добавить - в ТЗ (то есть в задании) четко были прописаны условия и их надо соблюдать.
Также не стоит реализовывать функционально, нам важно тренироваться в ООП, важно создавать в итоге объект бургера у которого будут определенные свойства и методы бургер, работать именно с ним. В итоге функционально вы будете писать в 1% рабочего кода, а 99% кода будет на ООП. Поэтому стоит переделать с использованием классов. Если совсем тяжело - попробуйте хорошо проработать разбор ДЗ.
Домашка в папке HW#2