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

Добрый день! Нуждаюсь в вашей помощи. Есть три компонента А>B>C

(стрелка указывает вложенность). У меня есть функция, которая рендерит канвасы (пдфки). Эта функция находится в компоненте "С". Мне надо вызывать эту функцию при первой инициализации компонента, и в последующем при нажатии на кнопку увеличения в компоненте "A". Как я могу получить доступ к функции рендера в компоненте А? Надеюсь не запутал вас.

36 ответов

21 просмотр

Через общий сервис

Вынести все в сервис

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

вот описание https://github.com/evoytenkoapps/angular-best-practices#%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0

Adam-Abdulaev Автор вопроса
Евгений Гений
используй viewchild или как там и дергай методы ни...

Привет. Этот способ не подойдёт , так между ними ещё один компонент

Adam-Abdulaev Автор вопроса
Евгений Гений
сделай тоже самое в прослойке. a method b. b metho...

Меня всегда немного смущал этот подход. Насколько это нормальная практика? Через несколько компонентов так прокидывать?

Adam Abdulaev
Меня всегда немного смущал этот подход. Насколько ...

для меня этот подход очень легко читается и поддерживается

Adam-Abdulaev Автор вопроса
Евгений Гений
для меня этот подход очень легко читается и поддер...

Понятно. Наверное так и сделаю, так как выносить в сервис этот метод будет довольно проблематично. Спасибо

Adam Abdulaev
Понятно. Наверное так и сделаю, так как выносить в...

в сервис не метод выносят а сабджект. и на него подписываются или дёргают

Adam Abdulaev
Понятно. Наверное так и сделаю, так как выносить в...

правда я не знаю ещё минусы этого подхода при вставке компонентов через ng-content или как там. у вас жёстко вставленны?

Евгений Гений
а как лучше и почему?

ну типа, если иерархия а-б-с, то почему первый раз триггерит при инициализации с?

Евгений Гений
а как лучше и почему?

ну и вообще, рулить методами чайлда через вьючайлд такое себе

Adam-Abdulaev Автор вопроса
Евгений Гений
и? какое не какое себе?

либо сервисы. либо прокидывать по иерархии триггер, на который отработает метод чайлда

Eugene Udalov 🇷🇺
либо сервисы. либо прокидывать по иерархии триггер...

Разделяемый компонент может быть Смарт компонентом ?

Евгений Гений
сервисы чем лучше viewchild?

а чем хорошо дергать чайлда чайлда?

Oleg Zhikharev
Разделяемый компонент может быть Смарт компонентом...

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

Eugene Udalov 🇷🇺
а чем хорошо дергать чайлда чайлда?

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

Евгений Гений
тем что сервисы инжектишь только смарты, и все дам...

Улучшает ли это юзабилити пользователей программы ?

Евгений Гений
тем что сервисы инжектишь только смарты, и все дам...

ага. а потом возникнет соблазн не юзать контрол вэлью эксессор, и дернуть форму чайлда ) и прочая дичь

Eugene Udalov 🇷🇺
ага. а потом возникнет соблазн не юзать контрол вэ...

форму чайлда дёргать не надо. она может эмитить данные и свои статусы на верх. резетить её можно лобо через инпут либо через viewchild

Евгений Гений
мы так не делаем. разделяемый тоже дамб.

Представляете в скольких местах программы нужно повторить Смарт функции ?

Евгений Гений
форму чайлда дёргать не надо. она может эмитить да...

а зачем родителю знать о методах чайлда чайлда? может быть родитель может сказать: хочу А, и другой компонент С увидит это требование через сервис или инпут? не надо нарушать нормальный поток событий

Евгений Гений
что такое смарт функция в вашем понимании?

Функция самая обычная в Смарт компоненте которая выполняется в ответ на output от дамб компонента

Евгений Гений
форму чайлда дёргать не надо. она может эмитить да...

или другими словами, вот у меня С, у него инпуты (или сервис) и я пониманию, что и где триггерит. и вот твой вариант. инпутов нет, наружу ничего не торчит, но методы отрабатывают. кто вызывает, где, как? магия

Eugene Udalov 🇷🇺
или другими словами, вот у меня С, у него инпуты (...

эти методы можно поместить в интерфейс и постамидь модификатор public что явно даёт понять что они нужны с наружи.

Евгений Гений
эти методы можно поместить в интерфейс и постамидь...

короче, не принял бы я твой PR. надо еще один вопрос к списку на собесы добавить 😁

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта