Size: a a a

2019 July 02

EI

Evgenii Ivanov in Angular Kyiv
Vladyslav Nasadiuk
Уже все перепробовал) и детект ченжи вызывать и в афтер вью дергать это. Компонент сортинга берется из нашей кастомной либы. Как только убираешь один из компонентов в таблице - все воркает. Как только их два, опять трабл
евент сортинга происходит когда юзверь "дергает" за пипку какую-то на интерфейсе?
источник

VN

Vladyslav Nasadiuk in Angular Kyiv
За пипку на таблице
источник

EI

Evgenii Ivanov in Angular Kyiv
Vladyslav Nasadiuk
За пипку на таблице
если по нее подвязан метод в компоненте попрубуй еще тутда навесить his.cdr.detectChanges();
источник

EI

Evgenii Ivanov in Angular Kyiv
но чесно говоря на одной проекте у меня так и осталась в одном компоненте такая трабла... (((( так и не вылечил... но на проде нет....
источник

VN

Vladyslav Nasadiuk in Angular Kyiv
ага, щас попробую спасибо
вот просто интересно, как такое дебажить
источник

VZ

Vitalii Zabihai in Angular Kyiv
на проде просто не показываются сообщения для разрабов
источник

VN

Vladyslav Nasadiuk in Angular Kyiv
но ошибка вываливается если что внутри компонента сортинга
источник

VZ

Vitalii Zabihai in Angular Kyiv
без кода сложно помочь
источник

VN

Vladyslav Nasadiuk in Angular Kyiv
спасибо, буду пробовать лечить)
источник

V

Vladimir in Angular Kyiv
Vladyslav Nasadiuk
Уже все перепробовал) и детект ченжи вызывать и в афтер вью дергать это. Компонент сортинга берется из нашей кастомной либы. Как только убираешь один из компонентов в таблице - все воркает. Как только их два, опять трабл
Эта ошибка означает что ты меняешь  стейт у компомпонента (direct binding or indirect) когда цикл детекшена уже прошел для этого компонента.

Например, у тебя есть родитель и есть child. И ты в родителе меняешь свойство чайлда (которое фигурирует в каком либо байдинге) через ссылку компонента.
Это direct mutation.

Есть и indirect. Это когда компонент мутирует стейт не прямо на другом компоненте, а по цепочке (A > B > C)
источник

VN

Vladyslav Nasadiuk in Angular Kyiv
как дебажить? :)
источник

V

Vladimir in Angular Kyiv
Есть два способа:

1) дебажить библиотеку Ангуляра.
И приготовиться к хардкору.
2) путем проб и ошибок убирать связи, которые не учевидны и изменяются в других компонентах.

Явными претендентами на такое являются компоненты которые инжектят другие компоненты в конструкторе
источник

V

Vladimir in Angular Kyiv
Или ссылка на компонент передается через инпут
источник

V

Vladimir in Angular Kyiv
Ещё одна небольшая ремарка (я поправил коммент первый)

ngAfterViewInit и ngAfterViewChecked для родителя срабатывают позже чем у чайлда.

Поэтому это родитель должен мутировать чайлда в ngAfterView* lifecycle hooks
источник

V

Vladimir in Angular Kyiv
Vladyslav Nasadiuk
как дебажить? :)
Ты следуешь подходу immutable или наоборот мутируешь объекты?

Другими словами меняешь ли ты в родителе свойство чайлда, которое участвует в template (или @HostBinding) путем мутации этого свойства
источник

V

Vladimir in Angular Kyiv
Дополнительным предметом размышления будет найти эти мутации, но ещё и обратить внинения на микротаски(job, промисы). Они очень коварны при неправильном использовании в CD
источник

VN

Vladyslav Nasadiuk in Angular Kyiv
спасибо, в том кейсе объект мутируется
источник
2019 July 03

ДМ

Денис Мовляйко in Angular Kyiv
Всем привет, интересует очень интересный вопрос))
В проектах на которых вы сидите, вообще пишутся тесты? Зайду с другой стороны), вы вообще добавляете .spec.ts?
источник

VN

Vladyslav Nasadiuk in Angular Kyiv
У нас если меньше 80% покрыто, то прекомит валится)
источник

VN

Vladyslav Nasadiuk in Angular Kyiv
Но так у меня последний год, раньше вообще забивали (другие проекты)
источник