Size: a a a

Советский Angular

2020 September 10

AH

Alena Hrenovskaya in Советский Angular
источник

AH

Alena Hrenovskaya in Советский Angular
источник

AH

Alena Hrenovskaya in Советский Angular
JSON Jenny 💖
Мультиселект или обычный?
пока с обычным
источник

AH

Alena Hrenovskaya in Советский Angular
сейчас буду мультиселект обрабатывать
источник

J💖

JSON Jenny 💖 in Советский Angular
Alena Hrenovskaya
Новости с полей: заказчик захотел, чтобы при открытии определенных селектов  происходила автоматическая фокусировка на значениях, выбранных в прошлый раз. Вообще дичь какая-то, но сделалась на удивление легко
Ты скролишь через нативное апи или с поддержкой ie?
источник

AH

Alena Hrenovskaya in Советский Angular
JSON Jenny 💖
Ты скролишь через нативное апи или с поддержкой ie?
focusMatOption(select: MatSelect) {
   const prevSourceId: number = getValueFromLocalStorage('source');
   const option: MatOption = select.options.find(item => item.value.id === prevSourceId);
   if (option && !this.source.value) {
     option.focus();
   }
 }
источник

J💖

JSON Jenny 💖 in Советский Angular
Alena Hrenovskaya
сейчас буду мультиселект обрабатывать
Вопрос к какому элементу там скролить. Открываешь селект и к первому из выбранных?
И ещё такой кейс. Если селект с infinite/virtual scroll и данных нет на первой странице то что показывать? Сразу фильтровать запрос на бек?
источник

AH

Alena Hrenovskaya in Советский Angular
а в шаблоне у mat-select вот так (opened)="focusMatOption(select)" #select
источник

J💖

JSON Jenny 💖 in Советский Angular
Alena Hrenovskaya
focusMatOption(select: MatSelect) {
   const prevSourceId: number = getValueFromLocalStorage('source');
   const option: MatOption = select.options.find(item => item.value.id === prevSourceId);
   if (option && !this.source.value) {
     option.focus();
   }
 }
О, прикольно)
источник

AH

Alena Hrenovskaya in Советский Angular
JSON Jenny 💖
Вопрос к какому элементу там скролить. Открываешь селект и к первому из выбранных?
И ещё такой кейс. Если селект с infinite/virtual scroll и данных нет на первой странице то что показывать? Сразу фильтровать запрос на бек?
касательно этой системы запрос отпадает, с бэка у нас лимит 100записей, а там никогда столько не будет по регламенту
источник

J💖

JSON Jenny 💖 in Советский Angular
Alena Hrenovskaya
касательно этой системы запрос отпадает, с бэка у нас лимит 100записей, а там никогда столько не будет по регламенту
Однако
источник

AH

Alena Hrenovskaya in Советский Angular
если же рассматривать в рамках других систем, то просто хранить в том виде, в каком выбирается value (id попадает в форму потом или весь объект) то можно просто "закидывать" объект к полученному списку
источник

AH

Alena Hrenovskaya in Советский Angular
моя директива getEntities принимает в себя текущее значение в селекте, чтобы добавить его в полученный с бэка список, если его нет там
источник

J💖

JSON Jenny 💖 in Советский Angular
Alena Hrenovskaya
если же рассматривать в рамках других систем, то просто хранить в том виде, в каком выбирается value (id попадает в форму потом или весь объект) то можно просто "закидывать" объект к полученному списку
Это немного будет неканон.
У тебя этот элемент в сортировке по нейму, будет 278, а грузишь ты разом сотку. Потом пользователь включает подгрузку каким-нибудь скроллом и усе, элемент теперь не 101, а 201, а уже потом 278
источник

J💖

JSON Jenny 💖 in Советский Angular
Хотя, как вариант
источник

AH

Alena Hrenovskaya in Советский Angular
обычно я туда "отправляю" значение из контрола, потому что если я не сделаю это, то получится так, например пользователь открывает карточку, там есть поле Организация, и в ней у нас Организация с id 5490, а в селект попадают только 1-100 id, и визуально поле будет пустым
источник

AH

Alena Hrenovskaya in Советский Angular
JSON Jenny 💖
Это немного будет неканон.
У тебя этот элемент в сортировке по нейму, будет 278, а грузишь ты разом сотку. Потом пользователь включает подгрузку каким-нибудь скроллом и усе, элемент теперь не 101, а 201, а уже потом 278
у нас на таких селектах всегда стоит поиск, вообще если там более 10-15 значений и это "редактируемый" справочник
источник

AH

Alena Hrenovskaya in Советский Angular
но слава богу, другим это в голову не приходит х)
источник

AH

Alena Hrenovskaya in Советский Angular
автофокус блин
источник

J💖

JSON Jenny 💖 in Советский Angular
Я все ещё не понимаю зачем)
А можешь гифку записать, хочу посмотреть как это выглядит in action.
Может это мега дизайнерский подход(и его надо избегать на всех обсуждениях хд)
источник