Size: a a a

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

2020 February 24

VS

Vladimir Spirin in Angular - русскоговорящее сообщество
Bohdan
от http моно не отписываться
зря ты это написал
источник

ДМ

Денис Макаров... in Angular - русскоговорящее сообщество
Ihor Levchenko
спасибо, это исчерпывающий ответ
значит мои опасения оправданы
источник

IL

Ihor Levchenko in Angular - русскоговорящее сообщество
Еще интересно, кто-то вообще пробовал игрался с динамическими роутами в ангуляр 9?

Я вот попробовал - но у меня просто не работает, вкладка просто начинает грузить ЦПУ на 100%

ну и когда делаю ng build —prod, то не появляются названия моих модулей.

Может я что-то не так делаю? Вроде все по докам.
источник

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ... in Angular - русскоговорящее сообщество
Денис Макаров
эту тему в чате уже столько раз мусолили, и столько уже статей на нее написано. Скажем так: безопаснее во всех случаях отписываться. Да есть http, и операторы вроде take(1) и тд. Но код модифицириуется. И где сегодня был горячий поток, завтра будет холодный и наоборот. Лучшие практики - отписка
А вот про 9 версию ангуляра вместе с untilDestroy тут ещё не рассказывали) ИМХО это идеальный способ отписки. Наконец-то не надо имплементировать onDestroy
https://github.com/ngneat/until-destroy
источник

ДМ

Денис Макаров... in Angular - русскоговорящее сообщество
Vladimir Spirin
зря ты это написал
)
источник

IB

Igor Bond in Angular - русскоговорящее сообщество
Всем привет. Обновляю проект с 8 на 9 версию, но есть траблы с левыми иконками FA - они во многим местах юзаются - перейти на офф. как бы гемор.
На 8 версии работают а вот на 9 слетели.
Ошибка такого плана - http://prntscr.com/r6v7rn
Можно ли ее победить, или проще перейти на другие иконки?
источник

IB

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

MM

Max Minin in Angular - русскоговорящее сообщество
Ihor Levchenko
я, блин, всегда делаю так:

const s = this.apiService
 .getSomething()
 .subscribe(
   (data) => {….. s.unsubscribe();},
   (err) => {…. s.unsubscribe();}
 )
Если так делать, исчезает смысл в Observable, если не используешь поток, лучше использовать промис.
источник

ДМ

Денис Макаров... in Angular - русскоговорящее сообщество
Max Minin
Если так делать, исчезает смысл в Observable, если не используешь поток, лучше использовать промис.
почему он исчезает? и еще, промисы нельзя отменять, а если такое поведение действительно нужно, то отписка - самый лучший вариант. Вообще, сам разработчик RxJS пишет у себя в статье, что toPromise - это антипаттерн, и используется только для совместимости с библиотеками, апи которых не знает про Observable
источник

🧤K

🧤 Andrei Kapytau in Angular - русскоговорящее сообщество
Ihor Levchenko
я, блин, всегда делаю так:

const s = this.apiService
 .getSomething()
 .subscribe(
   (data) => {….. s.unsubscribe();},
   (err) => {…. s.unsubscribe();}
 )
лучше испольхзовать только асинк пайп с потоками. Обьычно если data надо - оно надо в темплейте
источник

V

VY in Angular - русскоговорящее сообщество
Ihor Levchenko
не то чтобы меня это непрягало, но каждый раз отписываюсь всегда чтобы не допустить течки памяти
но смотрю что в реальных примерах никто не делает unsubscribe()

вот и интересно.. либо я параноик, либо люди не понимают как оно все работает, либо что-то изманилось уже в rxjs?
при http-запросах обычно не отписываются, потому что там finite обзерв который комплитится под капотом
источник

E

Eugene in Angular - русскоговорящее сообщество
VY
при http-запросах обычно не отписываются, потому что там finite обзерв который комплитится под капотом
Это не достаточная причина, чтобы не отписываться.
источник

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
Nazar Tolmachov
Переслано от Nazar Ginailo
Привет, может кто, пожалуйста, подсказать как сделать, чтобы когда я делаю :
new Human('Co', 'male'); // Cannot create an instance of an abstract class - выкидывало эту ошибку.
Вот код :

export class God {
 static create() {
   return [new Man('Adam'), new Woman('Eve')];
 }
}

export class Human {
 readonly name: string;
 readonly sex: string;

 constructor(name : string, sex : string) {
   if (this.constructor === Human) {
     throw new TypeError("Abstract class Human cannot be instantiated");
   }
   this.name = name;
   this.sex = sex;
 }
}

export class Man extends Human {
 constructor(name : string) {
   super(name, 'male');
 }
}

export class Woman extends Human {
 constructor(name : string) {
   super(name, 'female');
 }
}
типа чтобы уже в жсовском коде еррор кидало?
источник

NT

Nazar Tolmachov in Angular - русскоговорящее сообщество
я на вот этот вопрос отвечал
источник

NT

Nazar Tolmachov in Angular - русскоговорящее сообщество
Переслано от Nazar Tolmachov
export abstract class Human {...}?
источник

NT

Nazar Tolmachov in Angular - русскоговорящее сообщество
Переслано от Nazar Ginailo
Привет, может кто, пожалуйста, подсказать как сделать, чтобы когда я делаю :
new Human('Co', 'male'); // Cannot create an instance of an abstract class - выкидывало эту ошибку.
Вот код :

export class God {
 static create() {
   return [new Man('Adam'), new Woman('Eve')];
 }
}

export class Human {
 readonly name: string;
 readonly sex: string;

 constructor(name : string, sex : string) {
   if (this.constructor === Human) {
     throw new TypeError("Abstract class Human cannot be instantiated");
   }
   this.name = name;
   this.sex = sex;
 }
}

export class Man extends Human {
 constructor(name : string) {
   super(name, 'male');
 }
}

export class Woman extends Human {
 constructor(name : string) {
   super(name, 'female');
 }
}
источник

L

Looch in Angular - русскоговорящее сообщество
коллеги а такой вопрос когда лучше юзать share а когда BegaviorSubject(если допустим next не нужен из вне,просто запись последнего состояния) ?
источник

AH

Avetik Harutyunyan in Angular - русскоговорящее сообщество
Ребят, кто подскажет?
Есть FormArray с множеством FormGroup-ов. у каждого из FormGroup-ов есть по 2 FormControl-a, пусть будут A и B. Мне нужно при изменении каждого из контролов A - высчитать какое-то значение.
Я попробовал просто собрать valueChanges-ы всех контролов A в массив и через merge() слушать изменения, но появилась проблема, что в FormArray могут динамически пушить новые FormGroup-ы и потом при изменении контролов A в новых форм группах - их эмиты valueChanges-ов в мой изначальный merge() попадать не будут.
Как правильно решить такую задачу?
источник

DG

Denis Gayda in Angular - русскоговорящее сообщество
@armved  valueChanges на FormArray
источник

AH

Avetik Harutyunyan in Angular - русскоговорящее сообщество
Denis Gayda
@armved  valueChanges на FormArray
тогда оно будет эмититься и при изменении контролов А, и при изменении контролов B. Я хотел только подписаться на A, потому что в реальном мире вместо одного контрола B у меня будет куча контролов и будет не оптимально на каждый чих делать проверки а изменилось ли А?
источник