Size: a a a

Angular - русскоговорящее сообщество

2020 February 19

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
Промисы?
источник

YK

Yehór Kashperskyi in Angular - русскоговорящее сообщество
Serhii Tihovskiy
Какое самое элегантное решение вы знаете?
Зависит от архитектуры
источник

AK

Anton K. in Angular - русскоговорящее сообщество
ну да.
blockButton = true;
DataService.delete(id).finally(() => { blockButton = false })
источник

PF

Petr Fedchenko in Angular - русскоговорящее сообщество
Serhii Tihovskiy
Модалка с кнопкой "Удалить", по нажатию заблокировать кнопку на время запроса, по результату кнопку разблокировать
источник

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
Anton K.
ну да.
blockButton = true;
DataService.delete(id).finally(() => { blockButton = false })
ну просто юзать промисы имхо такое себе, когда есть rx, поэтому и уточнил
источник

AK

Anton K. in Angular - русскоговорящее сообщество
Serhii Tihovskiy
ну просто юзать промисы имхо такое себе, когда есть rx, поэтому и уточнил
ну да, на rxjs будет лучше выглядеть
источник

AK

Anton K. in Angular - русскоговорящее сообщество
но я с ходу не напишу - не особо эксперт в rxjs
источник

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
Тут больше вопрос в том, что, допустим, есть 2 терпимых варианта
@ViewChild('ourbtn') btn;

method() {
   btn.disabled = true;
   $().pipe(finalize(() => btn.disabled = false))
}
источник

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
И аналогичный, но где мы делаем не через viewChild, а через поле: boolean, а в темплейте btn [disabled]="поле"
источник

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
но как только у нас таких кнопочек становится более, чем одна, может начаться бардак в коде
источник

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
И если такой паттерн очень часто повторяется
источник

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
Собственно, поэтому и вопрос, как это заархитектурить так, чтобы смотреть было нестрашно
источник

PF

Petr Fedchenko in Angular - русскоговорящее сообщество
https://www.npmjs.com/package/angular2-promise-buttons

Посмотри этот пакет, отлично работает,
источник

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
источник

PF

Petr Fedchenko in Angular - русскоговорящее сообщество
А вы прям сразу с головой в 9-ку, через неделю после релиза..
источник

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
Ну а что тянуть :)
источник

PF

Petr Fedchenko in Angular - русскоговорящее сообщество
Ну тогда будьте готовы, что таких пактов будет много,  через ivy
источник

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
Тут бы всё-таки хотелось не пакет под каждый случай, а архитектурное решение
источник

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
В теории реализовать можно через глобальный хэндлер в духе ивент баса, но не будет ли это тот же бардак
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Serhii Tihovskiy
но как только у нас таких кнопочек становится более, чем одна, может начаться бардак в коде
кнопка и удаляемая сущность находятся в одном компоненте, который сам себя и удаляет
источник