Size: a a a

Angular - русскоговорящее сообщество

2021 May 26

ЕП

Егор Платонов... in Angular - русскоговорящее сообщество
Из какого болота вылез такой юморной парень?)))
источник

RH

Roman Hordiichuk in Angular - русскоговорящее сообщество
есть основной компонент с 2 аргументами из селектов, есть вложенный компонент с таблицой, мне нужно по клику вызывать функцию в компоненте с таблицой, если я делаю по сервису все окей до момента передачи из сервиса в компонент с таблицой. тобишь я могу по клику в основном триггерить функцию в сервисе, но как сделать чтобы из сервиса передавался этот триггер? насколько я понимаю напрямую передавать из 1 компонента в другой это не правильно в ангуляре
источник

RH

Roman Hordiichuk in Angular - русскоговорящее сообщество
забавно что из-за одного вопроса который постарался расписать я уже получил ярлык "молодой менеджерятни", видимо коммуникационные навыки у тебя хромают :)
источник

ЕП

Егор Платонов... in Angular - русскоговорящее сообщество
Я думаю он просто половины слов не понял в твоём вопросе , вот и подумал что это не он виноват а ты 😁
источник

RH

Roman Hordiichuk in Angular - русскоговорящее сообщество
скорее всего)
источник

AB

Alexander Bogdanov in Angular - русскоговорящее сообщество
Я недавно перечитывал документацию, нашел целую отдельную тему как компоненты между собой должны правильно взаимодействовать между собой: https://angular.io/guide/component-interaction

Может найдешь там что-то полезное.

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

AB

Alexander Bogdanov in Angular - русскоговорящее сообщество
Тогда как получишь результат от апи, сможешь тут же его использовать в компоненте.
источник

RH

Roman Hordiichuk in Angular - русскоговорящее сообщество
спасибо
источник

IL

Igor Lezhnev in Angular - русскоговорящее сообщество
Я вот тоже не понял вопрос до конца, обычный перезапуск observable, можно repeatWhen.
Но ощущение, что я не правильно понял вопрос
источник

AB

Alexander Bogdanov in Angular - русскоговорящее сообщество
Ну типа так:

someApiServiceMethod(): Promise<any> {
return new Promise((resolve,reject)=>{
   ... // логика получения данных по api
   resolve(data);
});
}
источник

IL

Igor Lezhnev in Angular - русскоговорящее сообщество
Но это будет очень странно, обычно пагинации  и подобные кейсы не требуют перезапуск потока (вопрос что с данными которые были делать)
источник

IL

Igor Lezhnev in Angular - русскоговорящее сообщество
Ну у человека там уже компоненты и т.д. явно как с промисами работать знает
источник

RH

Roman Hordiichuk in Angular - русскоговорящее сообщество
изначально у меня был компонент с 2 селектами в которых были аргументы для запроса, кнопкой найти и таблицой которая через ngFor перебирала массив ответа. и сейчас мне эту таблицу нужно вынести. Я полагаю что мне нужно через Observable делать, но с rxJs знания хромают и вот думаю как это сделать)
источник

IL

Igor Lezhnev in Angular - русскоговорящее сообщество
Стоп, ответ от сервера у тебя сразу полный? Зачем ты к нему хочеш  дополнительно ходить?
источник

RH

Roman Hordiichuk in Angular - русскоговорящее сообщество
проблема в том что мне нужно по кнопке вызывать уже логику не в основном компоненте а в таблице. Я пробовал через сервис но тогда у меня выходит такая картина до сервиса все доходит и работает, но мне нужно рефрешить отображение в компоненте таблицы и каким-то образом по смене селектов в основном компоненте заставить заново работать функцию получения данных в табличном компоненте
источник

IL

Igor Lezhnev in Angular - русскоговорящее сообщество
Тут выходит данные у тебя есть, ты просто компонент из таблицы хочешь сделать (пока не понятно зачем, но не суть) - передавай туда данные через @Input
источник

IL

Igor Lezhnev in Angular - русскоговорящее сообщество
@hordiichuk https://angular.io/guide/component-interaction
Эту ссылку тогда совершенно верно дали
источник

IL

Igor Lezhnev in Angular - русскоговорящее сообщество
@hordiichuk  твой вопрос правильнее было задать следующим образом (вопрос это пол ответа) :

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

И ответ был бы - через @Input() data: TestModel, или еще можно передавать не полученные данные, а именно Observable)
источник

RH

Roman Hordiichuk in Angular - русскоговорящее сообщество
спасибо) уже проясняется вопрос)
источник

IL

Igor Lezhnev in Angular - русскоговорящее сообщество
А если бы вопрос был бы: как мне получать данные в двух не связанных между собой компонентах через 1 родителя (не общего родителя) - ответ был бы: через Service - BehaviorSubject или ReplaySubject или Subject или AsyncSubject (применяются в зависимости от условий передачи)
источник