Componentes genéricos em angular 5 ou superior #1301
Replies: 2 comments
-
Fala guilherme! Uma solução pro seu caso seria utilizar Output e o EventEmitter. Recomendo fortemente pesquisar e ler mais a fundo para entender o funcionamento antes de implementar, dessa forma você vai realmente aprender como funciona. Basicamente, voce vai declarar uma propriedade OutPut no seu componente compartilhado que receberà um event emitter com o objeto que voce deseja passar para os demais componentes nesse evento. (Caso nao deseja passar nenhum valor, apenas o evento, esse valor pode ser vazio). 1- No seu componente compartilhado, declare uma propriedade do tipo Output, que sera um objeto do tipo EventEmitter, emitindo o valor que voce deseja. Exemplo:
Lembrando que o que voce passa entre 2 - No evento de clique de cada botão, voce devera emitir o event emitter correspondente, exemplo:
3 - Utilizar o componente compartilhado nos demais components: Toda vez que voce utilizar o seu componente compartilhado, basta associar os OUTPUTS dele a metodos no componente que voce esta importando. Exemplo:
processarDelete è um metodo do componente no qual voce està utilizando o componente compartilhado.. Observe que voce declara entre PARENTESES o nome do output e associa ele a algum metodo no componente em que esta utilizando. O parametro $event è o valor que voce declarou no EventEmitter. Caso ele for vazio nao è necessario receber o event como parametro. Funcionaria mais ou menos assim. Qualquer dùvida è sò falar. Abraço. |
Beta Was this translation helpful? Give feedback.
-
Dá uma pesquisada em: Container and Presentational Components Alguns links recomendados para você dar uma lida que pode te ajudar: https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Tenho estes botões que estão em todas os componentes criados de pesquisa. Sempre chamam um método padrão, isto é, a classe do componente extend de uma. Funcionando perfeitamente.
Para não ficar com este código em todas as telas criei o componente com o nome: BotoesTelaPesquisaComponent, assim coloquei no código html o seguinte código
<app-botoes-tela-pesquisa></app-botoes-tela-pesquisa>
, assim aparece os botões corretamente.Mas como imaginei ele não acha os métodos que estão no click, o que está correto, exemplo: pesquisar, alterar, novo, etc... Assim quando clico no botão dá erro no console do navegador informando que não existe o método.
Sei que existe o EventEmitter, que é passado por uma classe service. Mas não consegui desenvolver.
O que está faltando ?
Beta Was this translation helpful? Give feedback.
All reactions