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