po-angular icon indicating copy to clipboard operation
po-angular copied to clipboard

po-combo: p-change dispara ao reexibir o componente

Open likid opened this issue 1 year ago • 3 comments

Ao esconder o componente e exibi-lo novamente, o evento p-change é disparado novamente, mesmo não havendo alteração do valor.

https://stackblitz.com/edit/po-ui-pryfxn?file=src/app/app.component.html

Utilizando o exemplo do stackblitz, clicar no botão para esconder ou mostrar após selecionar qualquer valor no combo e ficar clicando neste botão. Há uma variável contando quantos disparos ocorrem o p-change e o valor é exibido no console também.

Qual o comportamento atual?

Dispara o p-change quando o componente é exibido novamente sem alteração de valor

Que comportamento você esperava ver?

Disparar o p-change somente quando houver alteração do valor.

Ambiente

  • PO UI: 15.7.0
  • Angular: 15
  • Browser(s):
    • [X] Chrome
    • [ ] Firefox
    • [ ] Edge
    • [ ] Safari
    • [ ] IE 11
    • [ ] Outros
  • Operating System:
    • [X] Windows
    • [ ] macOS
    • [ ] Ubuntu
    • [ ] Outros

likid avatar May 05 '23 18:05 likid

Boa tarde @likid , tudo bem?

Obrigado por reportar, vamos analisar e assim que possível entraremos em contato.

Att.

rafaellmarques avatar May 08 '23 20:05 rafaellmarques

Boa tarde @likid, tudo bem?

De fato, ao utilizar ngIf para exibir/esconder, esse comportamento está sendo realizado. Enquanto investigamos uma possível resolução, encontrei uma solução que pode funcionar bem. Ao invés de ngIf, utilizei [ngClass]="hidden ? 'hide-combo' : ' ' " e no css: hide-combo: { display: none } e dessa forma funcionou corretamente. Consegue verificar se funcionaria da forma esperada, por favor? Atualizei o stackblitz com essa solução: https://stackblitz.com/edit/po-ui-chwtyk?file=src%2Fapp%2Fapp.component.html,src%2Fapp%2Fapp.component.css,src%2Fapp%2Fapp.component.ts

Att.

CSimoesJr avatar May 24 '23 15:05 CSimoesJr

Fiz o teste com a classe ao invés do ngIf e deu certo. Além do po-combo, percebi que o po-switch também estava se comportando da mesma forma, reatribuindo o valor a ele. Com o uso da classe ele volta no mesmo status que estava antes de desaparecer. Não sei se isso é um comportamento natural do angular ou algo da biblioteca po-ui que deve ser alterado.

likid avatar Jun 09 '23 13:06 likid