169 похожих чатов

Все о чем ты говоришь, это ведь проблема представления данных

на клиенте, а раз так зачем как то менять данные которые приходят, работай с ними именно в том виде что они к тебе приходят, вместо их мутаций и костыльных сериализаций, просто пиши компоненты которые умеют отображать входные данные в нужном тебе виде основываясь на том что тебе пришло.
В ангуляре прекрасно разделили модель данных от представления данных, например есть прекрасный интерфейс ControlValueAccessor который позволяет инкапсулировать как раз в компонент те самые преобразования между моделью данных прешедшей с сервера и тем как нужно отобразить эти данные юзеру.

Простой пример с датой, к примеру с сервера тебе приходит модель, в которой есть поле даты в формате 2017-07-01, очевидно что юзеру в зависимости от региона вводить дату в таком формате не удобно, и ты хочешь чтобы он мог в инпут вводить дату 01/07/2017, плюс для удобства юзера, у тебя у инпута ввода даты еще имеется всплывающий календарь, который возвращает дату ввиде объект {year, month, day} итого на клиенте ты имеешь уже два разных представления даты, в виде строки для инпута, в виде объекта для календаря, но при сохранении на сервер тебе надо их конвертить в тот вид что пришел с сервера. Так в итоге зачем получая данные с сервера их сериализовать в другой формат, если можно просто сделать компоненты которые будут всегда принимать значения в серверном формате, а отображать уже так как нужно?

1 ответов

12 просмотров

А как быть со сторонними компонентами? Обертывать их в свои?

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта