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 ответов

11 просмотров

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

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) ничего не увидел. Это ж не должно быть валидной записью

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта