Size: a a a

2019 December 11

DM

Denis Martych in Angular Kyiv
у я в каждом компоненте пишу
detectChanges() {
   if (!this.cdr['destroyed']) {
     this.cdr.detectChanges();
   }
 }
я бы хотел, если есть такая возможность вынести это в сервис
источник

DM

Denis Martych in Angular Kyiv
потму что писать это в каждом компоненте мне не нравится
источник

СБ

Сергій Бабіч in Angular Kyiv
не пиши, використовуй обсервабли і async pipe
источник

DM

Denis Martych in Angular Kyiv
так а если у меня стоит
changeDetection: ChangeDetectionStrategy.OnPush

и у меня допустим при клике на кнопку меняется значение, оно же не отработает без детекшина
источник

DM

Denis Martych in Angular Kyiv
или я чет не так понимаю(
источник

Sergey Фrolov in Angular Kyiv
Denis Martych
или я чет не так понимаю(
Все правильно. Но обычно для этого используют local state в виде behaviorsubject и подписку на его изменения с выводом через async в шаблоне
источник

IF

Igor Filippov in Angular Kyiv
Denis Martych
так а если у меня стоит
changeDetection: ChangeDetectionStrategy.OnPush

и у меня допустим при клике на кнопку меняется значение, оно же не отработает без детекшина
асинк пайп запустит маркфорчек ну и сам опишется когда надо будет.
источник

G

George in Angular Kyiv
Denis Martych
так а если у меня стоит
changeDetection: ChangeDetectionStrategy.OnPush

и у меня допустим при клике на кнопку меняется значение, оно же не отработает без детекшина
Ивенты запускают CD , так что у вас что-то не так
источник

IF

Igor Filippov in Angular Kyiv
George
Ивенты запускают CD , так что у вас что-то не так
😕
источник

IF

Igor Filippov in Angular Kyiv
Это дефолтная стратегия на каждый пук и перд срабатывает, а онПуш нет же
источник

B

Bohdan in Angular Kyiv
Пуш срабатывает если метод класса вызывается
источник

Sergey Фrolov in Angular Kyiv
Bohdan
Пуш срабатывает если метод класса вызывается
Нет, только на инпуты
источник

Sergey Фrolov in Angular Kyiv
Методы класса никак не оборачиваются
источник

B

Bohdan in Angular Kyiv
https://stackblitz.com/edit/angular-change-detection-strategy-onpush-juyv1a?file=src/app/child/child.component.ts

а тут тогда как работает, если метод не оборачивается?

на кнопку call test кликайте и меняется val и во вью отобразилось это
источник

B

Bohdan in Angular Kyiv
Нет, только на инпуты
источник

B

Bohdan in Angular Kyiv
Методы класса никак не оборачиваются
источник

IF

Igor Filippov in Angular Kyiv
Bohdan
https://stackblitz.com/edit/angular-change-detection-strategy-onpush-juyv1a?file=src/app/child/child.component.ts

а тут тогда как работает, если метод не оборачивается?

на кнопку call test кликайте и меняется val и во вью отобразилось это
Ну реассинг ссылку меняет на объект
источник

B

Bohdan in Angular Kyiv
не туда смотришь, я про val
даже если вал будет обьект и там буду менять проперти и ссылка останеться, то всё будет работать
источник

B

Bohdan in Angular Kyiv
источник

G

George in Angular Kyiv
Denis Martych
так а если у меня стоит
changeDetection: ChangeDetectionStrategy.OnPush

и у меня допустим при клике на кнопку меняется значение, оно же не отработает без детекшина
источник