169 похожих чатов

Всем привет, кто-то может объяснить как происходит отписка по второй

ссылке?:

я пробросила сервис с interval(1000) через директиву и по разному подключила ее к компоненту:

тут я попыталась воспроизвести утечку (специально не отписывалась).

если открыть консоль и покликать по кнопке change component то видно прошлый и новый счетчик

В этом варианте я знаю как можно отписаться, чтобы утечки не было

https://stackblitz.com/edit/stackblitz-starters-61lsem?description=An%20angular-cli%20project%20based%20on%20@angular/animations,%20@angular/common,%20@angular/compiler,%20@angular/core,%20@angular/forms,%20@angular/platform-browser,%20@angular/platform-browser-dynamic,%20@angular/router,%20core-js,%20rxjs,%20tslib%20and%20zone.js&file=src%2Fcomponents%2Fpage-one%2Fpage-one.component.ts,src%2Fdirectives%2Ftest.directive.ts,src%2Fcomponents%2Fpage-one%2Fpage-one.component.html&title=Angular%20Starter

а тут явной подписки нет, директива и сервис те же, только данные получаю через template

если по кнопке покликать то счетчик останавливается и заново начинается

https://stackblitz.com/edit/stackblitz-starters-obfsmu?file=src%2Fcomponents%2Fpage-one%2Fpage-one.component.ts,src%2Fcomponents%2Fpage-one%2Fpage-one.component.html

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

16 ответов

13 просмотров

ну как минимум директивы так не юзают, их юзают в шаблонах и в провайдерах не регают

Galina-Gorbel Автор вопроса
Evgheni Чернявский
ну как минимум директивы так не юзают, их юзают в ...

это для эксперимента, сделано, чтоб утечку увидеть (Т.е для меня)

ух я даже не знал что на <div (test)="onTest($event)"> может повесится директива с [test] селектором в общем, во первых в директиве в качестве output должен быть EventEmitter а не observable но это не так важно, но суть в том что ангулар сам подписывается и отписывается когда надо от EventEmitter (который под капотом тоже observable) поздравляю вы смогли создать лютый хак который еще и работает

Galina-Gorbel Автор вопроса
Evgheni Чернявский
ух я даже не знал что на <div (test)="onTest($even...

лютый хак это же не очень хорошо я теперь в сомнениях, лучше делать явно и понятно, вот подписались, вот отписались, все все видят рады и счастливы но тут так удобно пробрасываются значения, что жалко все портить≥≥≥

Evgheni Чернявский
ух я даже не знал что на <div (test)="onTest($even...

А ты понял, почему вообще это работает?

Evgheni Чернявский
ну да

Поделись мыслями

Dmitry
Поделись мыслями

так уточните какой момент непонятен

Evgheni Чернявский
так уточните какой момент непонятен

Каким образом компонент связывается с директивой?

почему?

Igor Katsuba
почему?

у меня оно не всегда срабатывало. надежней аттрибут отдельно и аутпут отдельно

xxtux Shvets
у меня оно не всегда срабатывало. надежней аттрибу...

А можешь наиграть кейс, когда не срабатывало?

Igor Katsuba
А можешь наиграть кейс, когда не срабатывало?

это из экспериментов в последнии года три. сейчас я врядли воспроизведу

Igor Katsuba
почему?

Переопределение дефолтных вещей не очень хорошо, особенно в командной работе

Evgheni Чернявский
По селектору

А где селектор? Я кроме (test) ничего не увидел. Это ж не должно быть валидной записью

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта