2
respostas

Output property

Aprendemos no tópico referente a Output properties que podemos utilizá-las quando precisamos, através de um componente pai, obter um valor emitido por um componente filho. No exemplo demonstrado pelo Flávio, o componente filho está sendo utilizado de forma estática no template do componente pai. A pergunta é a seguinte: E se o componente filho estiver sendo carregado, dentro do template do componente pai, por intermédio de um router-outlet em razão de uma rota filha?? Nesse caso, como o componente pai poderia obter um valor emitido, já que o componente filho em questão não é invocado estaticamente em seu template??

2 respostas

Boa noite, André! Como vai?

Há também a possibilidade de criar um serviço que ficará responsável por emitir esse valor pra qualquer componente que queira consumí-lo. Isso é demonstrado na prática mais pra frente do curso quando for feita a funcionalidade de login.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Fala Gabriel, obrigado pelo retorno. Eu já passei por essa parte de login do curso e estou a vontade com essa parte de serviços. Mas o que acontece no meu caso é o seguinte:

Minha SPA tem um componente principal que, além de conter vários outros componentes, também possui um router-outlet, dentro do qual podem ser carregados um ou outro componente. O problema é que, dependendo do componente que será carregado ali dentro, o componente principal precisa mudar algumas algumas características, para receber o conteúdo interno, além de atualizar algumas inbound properties de outros componentes presentes estaticamente em seu template. Então não estou sabendo fazer essa comunicação: O componente filho avisar para o componente principal o seguinte: "O conteúdo que está sendo carregado aí dentro sou eu. Prepara o terreno aí e avisa também o componente fulano que ele também precisa saber".

Por isso pensei nas Output properties para fazer essa comunicação, mas esbarrei no router-outlet. Caso não seja a maneira correta de fazer, o que seria mais apropriado?? Grato pela ajuda. Grande Abraço.