Estou trabalhando em um projeto Angular para gerar um PDF. Aqui estou usando <app-pagedesign>
um componente filho para <app-root>
, onde a lista de produtos é enviada aqui. O PDF é gerado após o envio do formulário. Tudo está funcionando bem. Mas quando clico em "Contato" e retorno ao link "Produtos", o PDF é gerado sem fornecer nenhuma entrada. Ou seja, ele está pegando os valores enviados anteriormente. Presumo que isso seja devido à inicialização do componente filho. Mas não consigo resolver isso. Alguém pode me ajudar a resolver isso.
Meu link do stackblitz é https://stackblitz.com/github/reegan2024/mygithubrepo?file=README.md
Em vez de
BehaviorSubject
ir paraSubject
.A diferença é que o componente do produto é destruído (navegando para o contato) e ao retornar para o componente do produto, ele
ngOnInit
pega fogo.Nisso, estamos assinando o
BehaviorSubject
, a especialidade deste comparado aSubject
é que ele dispara quando inscrito inicialmente. Então o código print é disparado, quando o componente do produto é inicializado.Isso não acontece na primeira vez, pois o valor do serviço
BehaviorSubject
é uma string vazia no carregamento da tela e a condição if bloqueia a impressão, mas ao definir usingproduct component
e acessá-la novamente, ela tem um valor e executa o código, daí o bug.Demonstração do Stackblitz