Skip to content

Conversation

@PeregudovN
Copy link

Домашка в папке HW#2

</head>
<body>
<header>
<button class="btn-cart" onclick="sum()">Cart</button>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Забывайте про инлайн обработчики в html - это прям совсем совсем плохо. Общее правило - не используем их, если есть возможность повесить обработчик в коде. Только если какой-то уникальный случай, когда нет такой возможности, то можем себе это позволить, но это исключительные ситуации

Comment on lines +25 to +32
let sum= () =>{
let sum = 0;

for(let products of data){
sum +=products.price
}
return sum;
}
Copy link

@AndrewRimsky AndrewRimsky Feb 22, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Так а где классы у вас? Тут в целом да, метод суммирует и работает верно, но надо было реализовывать его в классе каталога.

Comment on lines +15 to +17
<button class="max" onclick="renderBurgerX()">Большой Бургер</button>
<button class="min" onclick="renderBurgerN()">Маленький Бургер</button>
</aside>

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 = [

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Говорил, что делаем в ООП. Нам скорее важно тренировать ООП и архитектуру, а не саму реализацию, так как функционально если делать, то все довольно просто

Comment on lines +2 to +6
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}

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>
Copy link

@AndrewRimsky AndrewRimsky Feb 22, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Первое и самое главное это так не сработает синтаксически просто. Поэтому сразу отказываемся от такой реализации. Попробуйте придумать общий метод
А если станет больше опций, то под каждую будете свой метод добавления делать? Нет, так не пойдет. Плюс зачем при выборе что-то отображать? Сначала надо позволить выбрать один размер, одну начинку и любые топпинги, и только после нажатия на кнопку собрать - создать экземпляр класса бургер, который будет определять, что выбрано на странице и на основе этого определять какие свойства в нем будет, а после считать свою стоимость и калорийность

Comment on lines +88 to +112
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

}

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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сейчас у вас нет как таковых классов, не создаются объекты, то есть у вас просто генерируется верстка и (по задумке вашей) добавляется в определенные блоки по кликам. Причем нет ограничений, я одну начинку могу 10 раз добавить, могу все три начинки добавить - в ТЗ (то есть в задании) четко были прописаны условия и их надо соблюдать.
Также не стоит реализовывать функционально, нам важно тренироваться в ООП, важно создавать в итоге объект бургера у которого будут определенные свойства и методы бургер, работать именно с ним. В итоге функционально вы будете писать в 1% рабочего кода, а 99% кода будет на ООП. Поэтому стоит переделать с использованием классов. Если совсем тяжело - попробуйте хорошо проработать разбор ДЗ.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants