Depois que eu atualizei do Angular 7 para o Angular 8 em uma aplicação o [disabled] deixou de funcionar no template. E para carregar a aplicação eu precisei alterar para [attr.disabled] . Ainda não entendi muito bem o porque do 'attr.'
Mas de todo jeito o disabled deixou de funcionar como antes (antes ele ficava desabilitado caso a pessoa selecionasse tantas tags. Se o usuário ticava mais que 5, desabilitava, se ele 'desticava' habilitava de novo. Mas no angular 8 deixou de funcionar e agora aparece o erro
It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true
when you set up this control in your component class, the disabled attribute will actually be set in the DOM for
you. We recommend using this approach to avoid 'changed after checked' errors.
Example:
form = new FormGroup({
first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),
last: new FormControl('Drew', Validators.required)
});
HTML
...
<div class="form-group col-5 col-md-3" *ngFor="let tag of tags" [attr.disabled]="desabilitar(tag)">
...
Typescript
...
public desabilitar(tag: Tag): boolean {
return !this.exists(tag) && this.tagsEmpresa.length === 5;
}
...
Não parece algo tão difícil, a ideia pelo que eu entendi é que eu deveria desabilitar pelo próprio ts e não pelo template, é isso? Não peguei muito bem..