Size: a a a

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

2021 April 04

ДП

Денис Писаренко... in Angular - русскоговорящее сообщество
Кирилл mrDoode
И что ты мне предлагаешь сделать?)
Нет, я про то что хочу разобраться как работате ngFor, я выше пример в стэкблитз привел по разным вариантам изменения массива
источник

E

Eugene in Angular - русскоговорящее сообщество
Денис Писаренко
Нет, я про то что хочу разобраться как работате ngFor, я выше пример в стэкблитз привел по разным вариантам изменения массива
открыл ваш stackblitz, по всем кнопкам перерисовывается
источник

ДП

Денис Писаренко... in Angular - русскоговорящее сообщество
Eugene
как пробовали, покажите
вот функция trackBy

trackByFn(idx: number, aggr: InstancesAggregate) {
   return aggr.instance.id;
 }


А то где я изменяю элемент массива на скриншоте
источник

E

Eugene in Angular - русскоговорящее сообщество
Денис Писаренко
вот функция trackBy

trackByFn(idx: number, aggr: InstancesAggregate) {
   return aggr.instance.id;
 }


А то где я изменяю элемент массива на скриншоте
🙈
источник

ДП

Денис Писаренко... in Angular - русскоговорящее сообщество
свойство отвечающее за open - collapsed в шаблоне соответственно использую [open]="!instanceAggr.collapsed"
источник

E

Eugene in Angular - русскоговорящее сообщество
Денис Писаренко
свойство отвечающее за open - collapsed в шаблоне соответственно использую [open]="!instanceAggr.collapsed"
если у вас меняется collapsed и вы хотите чтобы trackBy это учитывал, нужно его в хеш добавить
источник

E

Eugene in Angular - русскоговорящее сообщество
Eugene
если у вас меняется collapsed и вы хотите чтобы trackBy это учитывал, нужно его в хеш добавить
trackByFn(idx: number, aggr: InstancesAggregate) {
   return aggr.instance.id + somewhat.collapsed.toString();
 }
источник

ДП

Денис Писаренко... in Angular - русскоговорящее сообщество
Eugene
trackByFn(idx: number, aggr: InstancesAggregate) {
   return aggr.instance.id + somewhat.collapsed.toString();
 }
Ааа понял
То есть trackBy при каждом изменении массива проверяет хэш каждого элемента массива до и после и если они не совпадают, то делает ререндер, верно?
источник

ДП

Денис Писаренко... in Angular - русскоговорящее сообщество
А как можно вообще продебажить как часто у меня перерисовывается вьюха компонента? и желательно так чтобы можно было найти что побуждает перерисовать
источник

AK

Alex Kh in Angular - русскоговорящее сообщество
Денис Писаренко
А как можно вообще продебажить как часто у меня перерисовывается вьюха компонента? и желательно так чтобы можно было найти что побуждает перерисовать
ngDoCheck() { console.log('check') }
источник

E

Eugene in Angular - русскоговорящее сообщество
Денис Писаренко
Ааа понял
То есть trackBy при каждом изменении массива проверяет хэш каждого элемента массива до и после и если они не совпадают, то делает ререндер, верно?
+
хеш составляете из тех полей, которые нужны
источник

ДП

Денис Писаренко... in Angular - русскоговорящее сообщество
Alex Kh
ngDoCheck() { console.log('check') }
А проследить что было изменено можно?
источник

S

Spid3r in Angular - русскоговорящее сообщество
Загадка от Жака Фреско ) Куда пропадает тенант? 🙈
источник

S

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

S

Smooth Operator in Angular - русскоговорящее сообщество
наведи на [i] там подсказска будет
источник

S

Spid3r in Angular - русскоговорящее сообщество
Логично. Говорит, что значение могло измениться. Странно... Буду разбираться, спасибо.
источник

S

Spid3r in Angular - русскоговорящее сообщество
Fixed.
источник

AK

Alex Kh in Angular - русскоговорящее сообщество
Денис Писаренко
А проследить что было изменено можно?
попробуй
ngOnChanges(changes: SimpleChanges) {
   console.log(changes)
}
источник

ДП

Денис Писаренко... in Angular - русскоговорящее сообщество
Alex Kh
попробуй
ngOnChanges(changes: SimpleChanges) {
   console.log(changes)
}
Круть, спасибо!
источник

АА

Андрей Андрей... in Angular - русскоговорящее сообщество
источник