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

Всем привет. А какие пути есть передачи сервиса из родительского

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

25 ответов

18 просмотров

если это работает так как вам нужно то это правильно если это работает не так как вам нужно то это не правильно

EventEmitter

внедрять сервис через @Input?

мы внедряем сервисы только в первый родительский - smart компонент. все что ниже общаются через input\output, как вариант. Вот почитай 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

Дара- Автор вопроса
Nikolai Kovalenko
внедрять сервис через @Input?

через @Input можно передавать объект этого сервиса

Определяем сервис в модуле общем для родителя и дочки, и через инжект подключаем сервис в родителя и дочку. Это будет один и тот же инстанс сервиса.

А зачем Вам это? Что за сервис там?) Обычные input/output не подойдёт для коммуникации?

Дара- Автор вопроса
Oleg Safonov
А зачем Вам это? Что за сервис там?) Обычные inpu...

Я еще не пробыввал через Input/Output. Просто в дочерним элементе и так уже много @Input. Хотелось бы другое решение

Дара- Автор вопроса
Aleksandr Koltovich
Определяем сервис в модуле общем для родителя и до...

А как сделать общим сервис для родителя и дочки?

Дара
Я еще не пробыввал через Input/Output. Просто в до...

А что за компонент такой? Может разделить его? Или объединить в объект поля, если там конфиг какой, например Если будет и инпут и сервис- будет странно)

Дара
А как сделать общим сервис для родителя и дочки?

Определить его в общем модуле. Я же выше написал )

Дара- Автор вопроса
Oleg Safonov
А что за компонент такой? Может разделить его? Или...

Ну там дочерний компонент, где надо общаться с базой и соответственно нуден сервис

Дара
понял

почитайте про то как работает DI в Angular

Aleksandr Koltovich
Определяем сервис в модуле общем для родителя и до...

+ или можно создать common модуль где будут общие сервисы для любых модулей - плюс инжект, если прям и стейт хранить то плюс ngrx - хотя на первых порах с монорепозиторием на сабджах я обходился выше крыши

Евгений Гений
мы внедряем сервисы только в первый родительский -...

smart Он не использует Input\Output это реально? у меня есть кастомный селект, запрашивающий список с сервера, в Input приходит параметр, какой список нужно запрашивать. Как это делать на умных/тупых?

Nikolai Kovalenko
smart Он не использует Input\Output это реально? ...

список с сервера должен запрашивать не компонент а сервис - и вбрасывать его например через async в компонент

Nikolai Kovalenko
smart Он не использует Input\Output это реально? ...

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

Nikolai Kovalenko
сервис и запрашивает

в сервисе сделай геттер который возвращает observable и без всяких инпутов заинжекти в конструктор сервис - спокойно во вьюху вставь метод через async пайп

Вот накидал пример реализации как у нас https://github.com/evoytenkoapps/angular-best-practices/tree/master/examples/src/app/components/smart-dumb-concept

Дара
А как сделать общим сервис для родителя и дочки?

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

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

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

Какой-то там пердун в 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
Карта сайта