Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   тестовое задание (https://javascript.ru/forum/project/71383-testovoe-zadanie.html)

DynkanMaclaud 14.11.2017 19:34

тестовое задание
 
в общем имеются следующие условия:
http://jsbin.com/ladobefoji/edit?js,output

сделал вот так :
https://jsfiddle.net/t73w9obn/1/


по поводу сохранения данных на сервер не пойму что они от меня тут хотят...

Rasy 14.11.2017 22:10

DynkanMaclaud,
Uncaught TypeError: Cannot read property 'push' of undefined (index):138

В примере запись можно сохранять, изменять и удалять.

Цитата:

Сообщение от DynkanMaclaud
по поводу сохранения данных на сервер не пойму что они от меня тут хотят...

Возможно собирать введенный текст и сохранять в объекте.
Объект сериализовать и отдавать на сервер через протокол http, аяксом.

DynkanMaclaud 15.11.2017 01:17

Rasy,
изменил ссылку на рабочий пример...

Alexandroppolus 15.11.2017 12:19

DynkanMaclaud,

у тебя класс Notes сочетает в себе и модель, и вьюху. По сути, наследуется от модели.

Возможно, правильнее было бы оставить модель отдельно, и, например, передавать её в конструктор вьюхи, или ещё как-то.

В самой модели предусмотреть асинхронный интерфейс (для взаимодействия с сервером). В идеале - модель должна быть EventEmitter, тогда вьюха просто сможет на неё подписываться и обновляться. При таком раскладе всякие прочие компоненты смогут тоже работать с моделью, а не с вьюхой.

В общем, как-то так.

DynkanMaclaud 15.11.2017 12:36

Alexandroppolus,
т.е предлагаешь паттерн observeble (обозреватель) впилить ??

Alexandroppolus 15.11.2017 12:46

DynkanMaclaud,
ну это если совсем правильно делать :) повторюсь - это чтобы другие компоненты страницы могли с твоим компонентом работать, если вдруг такой кейс понадобится.

по рендеру - наверно, для обработки событий правильнее будет использовать делегирование, а конкретно вот такой подход: https://learn.javascript.ru/behavior - т.е. вешать один обработчик конкретного типа события на родительский элемент, смотреть target, ну и т.д. Чтобы при каждом обновлении обработчики не ставить на отдельные элементы.

destus 15.11.2017 12:50

DynkanMaclaud,
Работа с localStorage и JSON.parse без try...catch. Поправьте, пока никто не поранился.

Rasy 15.11.2017 14:31

Имхо, если предусмотрено общение с сервером, то локальное хранилище лишнее:)

DynkanMaclaud 15.11.2017 19:08

destus,
можно пример того как вызов JSON.parse именно в этом коде, может выдать ошибку ... ? другими словами что пользователь может написать что код не отработает... ?)

DynkanMaclaud 15.11.2017 19:09

Alexandroppolus,
запилил обозреватель...
https://jsfiddle.net/t73w9obn/2/


Часовой пояс GMT +3, время: 01:18.