Size: a a a

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

2021 May 22

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Подключишь, просто потратишь время больше, чем ожидаешь. За вечер вряд-ли со всем разберешься
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
сорвано хочу попробовать ,
источник

P

Pasha in Angular - русскоговорящее сообщество
Недавно смотрел апи Крипты , чуть на стену не полез
источник

P

Pasha in Angular - русскоговорящее сообщество
Там что бы навести красота через канвас, нужно душу продать
источник

7

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

ЕУ

Евгений Удалов... in Angular - русскоговорящее сообщество
?
источник

P

Pasha in Angular - русскоговорящее сообщество
Не смей произносить в слух что у тебя получилось 😂
источник

P

Pasha in Angular - русскоговорящее сообщество
Слишком сильно напудрено. Для меня, пока что
источник

v4

vysheradugi 4 in Angular - русскоговорящее сообщество
привет всем
подскажите как бы типы указать в массиве как параметре в таком виде
.subscribe(([modalComponent, payload]) => {...}
хочу типы указать для modalComponent и payload
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
([first, second]: [number. string]) => {}
источник

v4

vysheradugi 4 in Angular - русскоговорящее сообщество
точно, спасибо
источник

CF

Constantine Fedoruk in Angular - русскоговорящее сообщество
Друзья, плиз хелп) Ворос по RXJS.
Помогите написать, чтоб было красиво.
Надо посчитать сумму чека.
Есть апи, запрашиваем чек -this.order$ = this.orderService.getOrderById(2323),
получаем Order - {
 id: 2323,
 orderItems: [
   {
     productId: 45,
     quantity: 8
    },
   {
     productId: 46,
     quantity: 4
   }
 ]

Теперь на нужно получить продукты, чтоб посмотреть их цену
orderProducts$ = this.order$.pipe(
 concatMap(order => {
   const productsIds = [];
   if(order)
     for(let orderItem of order.orderItems){
       productIds.push(orderItem.productId);
     }
     return this.prductService.getMultipleProductsByIds(productIds);
 }
);

теперь нужно нужно взять quantity(количество) каждого из oroderItems и помножить на цену продукта -
totalPrice$ = combineLatest([order$, orderProducts$]).pipe(
map(([order, orderProducts]) => {
   totalPrice = 0;
   for(let orderItem of order.orderItems){
     for(let product of orderProducts){
       if(product.id == orderItem.productId)
         totalPrice += product.price * orderItem.quantity;
     }
   }
   return totalPrice;
 }
);

И вот мы наконец то получили нашу сумму чека. Только блин вот это все очень не красиво, мы ходим вокруг одних и тех же данных много раз, у нас еще в concatMap были все эти данные, но мы их получали в не том порядке, чтоб можно было провести эту калькуляцию.

Короче, кто умеет писать лаконично и красиво c rxjs, помогите плиз переписать этот кусок)
источник

AI

Anton Iliyn in Angular - русскоговорящее сообщество
всем привет, вешаю асинхронный валидатор на контрол таким способом, тап в консоль нужный результат выводит, но сам контрол без ошибок и в состоянии пендинг - что я делаю не так?
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Подозреваю, что ждет завершения потока, то есть надо поставить first()
first(), map(...), catch(...)...
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Главное - this.order$ = this.orderService.getOrderById(2323).pipe(shareReplay()) сделайте, т.к. иначе на каждую подписку order$ будет заново запрос выполняться
источник
2021 May 23

В

Влад in Angular - русскоговорящее сообщество
Подскажите

Когда я объявляю переменные внутри метода способом let или var, какое в них отличие?

И нужно ли после выполнения метода уничтожать переменные? TypeScript умеет делать очистку памяти автоматически?
источник

AI

Anton Iliyn in Angular - русскоговорящее сообщество
спасибо, сработало) только я не понял, почему так?
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Потому что должно соблюдаться правило - 1 изменение значения ведет к 1 проверке валидатором. В вашем случае 1 изменение мапится на поток options$, который хрен знает сколько значений успеет выкинуть, то есть неразбериха. А если случится второе изменение? Тогда 2 валидатора будут работать параллельно скорее всего не будет, просто будет ждать завершения первого валидатора
источник

Dm

Dungeon master in Angular - русскоговорящее сообщество
написать явный класс и явно его использовать
источник

Dm

Dungeon master in Angular - русскоговорящее сообщество
вообще понапридумывали всяких апгрейдов над цсс, а возьмите стандартный та и все
источник