Viktor
Есть - ангуляр + правки по верстке, опыт есть хороший? Надо хорошо уметь верстать и достаточно знать ангуляр...
Sasha
Такой кейс, есть форма, которая может быть очень большой и зачастую приходится ее листать. При валидации, подсвеченное поле может быть 'вне зоны видимости'. Как бы вы поступили в такой ситуации? Делали бы roll до этого поля? Или выводили сообщение toast'ом?
Anonymous
Sasha
Anonymous
Sasha
Тогда разбей по шагам.
Там не как таковых стейтов, чтобы делать по шагам и зачастую нужно видеть сразу всю инфу, когда ты заходишь в уже созданную сущность. Шаги хороши, но это скорее для конфигурации, визардов или заведения учетки. А если нужно отредактировать форму продукта, то не катит(
Anonymous
Всем привет
Anonymous
Как зайти в react группу
Anonymous
Sasha
Валидация на лету?
Да. В соответствии с материалом, валидация полей сразу же. А проверка бизнес-логики на бэкенда уже и если что выводится тост
Anonymous
Sasha
Я может не верно понял, но выглядит так, что ты имеешь ввиду двусторонний биндинг
Sasha
Ну мне недавно пришлось это сделать. Сбиндил '=' и в $onChanges() реагировал
Sasha
Которые изменяет какой-то компонент в глубине?
Sasha
Ну я такое всегда делаю через сервайс между компонентами. Но недавно возникла ситуация, что пришлось сделать двусторонний биндинг, потому что с синглтоном было не решить
Sasha
У тебя какая ситуация? Надо статус формы отдать родоку?
Sasha
Не совсем понимаю, но если просто нужно родоку получить форму - то обычный сервайс с геттерами сеттерами.
Если это много динамически генерируемых компонентов, то тогда двусторонний биндинг(у меня недавно кейс такой возник)
Sasha
Ну как вариант, а можно еще делать не синглтон фабрики.
Sasha
Ну вообще, двусторонний биндинг вроде как не рекомендуется. Во 2м вообще выпилен
Sasha
Поэтому если есть возможность сделать без него, лучше так
Sasha
Ну и норм) так же пока сделал
Maxim
кто что подсказать может?
Maxim
Привет, посоветуйте, пожалуйста, как лучше реализовать такой функционал
Есть два компонента: первый - панели на дашборде, второй - контролы для управления количеством отображаемых панелей на дашборде (1, 2, 4)
Как лучше осуществлять это управление? то, что через сервис, это понятно, вопрос несколько в другом, как лучше отслеживать, какие панели показывать, а какие нет
Viktor
что значит как отслеживать? ng-if не поможет?
Denis
Массив объектов панелей с уникальными идами
Viktor
ng-repeat c $index и ng-if по $index
Viktor
если я правильно понял вопрос
Denis
Лучше не юзать $index
Denis
Делай уникальные ид
Maxim
не совсем то с индексом
Maxim
насчет ид - каждый раз перебором выводить потом?
Viktor
тут вроде как раз задача для индекса элемента больше подходит
Viktor
и ng-if="$index < service.count"
Maxim
есть три кнопки, первая - показывает первую панель, вторая - две первые панели, третья - все 4 панели
Viktor
если есть у панеделей уникальные ид - то по ним тоже можно
Viktor
условия написать видимости
Viktor
а на кнопки - ну ng-click поветить и в сервисе какие-то значения менять
Viktor
или одну переменную
Denis
В сервисе пишешь
Denis
this.obj = {arrOf: [], visible: [ids]}
Denis
Потом ng-repeat с фильтром по визибл
Denis
Maxim
вот я так же делал, а в сервисе по клику пробегался по этому массиву в visible и показывал те, что совпадают с массивом
Maxim
но мне кажется это не слишком изящно
Denis
Ну, если юзать массив как фильтр( ng-repeat item in obj.arrOf | filter:obj.visible) а по клику лишь менять визибл, то вполне изящно, чому нет
Denis
У тебя получается что модель управляется полностью ангуляром
Viktor
да - нормуль
Viktor
хорошее решение
Maxim
в качестве панели используется компонент, в котором отписан метод получения данных, получается, что в выведенных панелях по репиту в каждой панели можно свой набор данных будет получать?
Maxim
@mayorovd что скажешь?
Viktor
по опыту - лучше все же подумать на будущее про решение когда одним аяксом страница загружается
Viktor
когда их 10 на страницу при загрузке - хуже работает
Maxim
при первой загрузке - один запрос
Viktor
зачем повторные?
Maxim
а потом есть необходимость обновлять каждый компонент
Viktor
при кликах?
Viktor
на кнопках?
Maxim
там типа аналитика собирается, да при кликах в дропдаунах
Maxim
дропдауны со своим набором вопросов в каждой панели
Maxim
и должны графики перерисовываться, опять же в каждой панели
Serhii
ng-repeat="panel in panelFactory.getAllPanels()" -> ng-click="panel.toggleVisibility()"
ng-repeat="panels in panelFactory.getAllPanels()" ng-show="panel.visible"
Serhii
чтобы не перерисовывались ng-show, для реинициализации ng-if
Serhii
это если панели у тебя статические и ты их не генеришь
Maxim
А для сохранения состояния каждой панели что лучше использовать? Под сохранением состояния я подразумеваю уже отрисованный график по определенным параметрам
Maxim
Может в templateCache записывать при каждом запросе?
Maxim
И обновлять
Serhii
ты можешь сразу решить сохранять или нет? или это должен быть параметр панели?
Serhii
на основе конфигурации используй либо if либо show, через ng-attr или делай директиву обертку которая статически будет подставлять иф или шоу
Serhii
Serhii
https://www.youtube.com/watch?v=i8DRen60X10
Victor
Всем привет, у нас вакансия на фронтэнд открылась в Нижнем Новгороде, от 150к+ и выше + дмс + курсы англ + безлимитные плюшки + парковочное место + иногда поездки в штаты по обоюдному желанию. Все руководство в США. Если надумаете, не забудьте сказать что от меня https://hh.ru/vacancy/20129475
Serhii
Ура!
Vadim
Не могу придумать красивое решение, нид хелп.
Есть форма:
form.name
form.code
При отправке формы должно быть отправленно:
{
name.like: value,
code.equals: value
}
Как красиво и гибко добавлять вот эти параметры типа like, equals, in и так далее
Nikolai
Serhii
сериализируй
Serhii
for in key,value
Serhii
а еще лучше - сериализатор метод меред отправкой в которьій тьі кормишь все гавнецо, а он вьідает что тебе нужно
Nikolai