html – *ngIf está renderizando dois blocos

Estou fazendo uma validação de inputs, onde caso o usuário selecione o banco X, o campo conta terá no mínimo 5 caracteres e no máximo 11, caso escolha o banco Y, o campo terá no mínimo 5 caracteres e no máximo 5. Está assim a div:

//Banco X
<div *ngIf="form.get("id_banco")?.value !== codigo_y">
  <input
    maxlength="11"
    minlength="5"
    formControlName="conta"
  >
</div>

//Banco Y
<div *ngIf="form.get("id_banco")?.value === codigo_y">
  <input
    maxlength="5"
    minlength="5"
    formControlName="conta"
  >
</div>

Caso eu seleciono o banco X, ele aceita mais de 5 caracteres, mas apresenta uma mensagem de erro que eu havia colocado e se eu volto com 5 caracteres, o erro some. E se eu altero o banco Y para aceitar 8 caracteres, no banco X ele também só fica valido com 8 caracteres. Alguma sugestão? Se for preciso mais informações, podem me falar.