Vinculação de dados bidirecional da caixa de seleção em Angular
Este artigo angular examinará diferentes métodos para realizar uma vinculação de dados bidirecional com caixa de seleção.
Usaremos o atributo ngModelOptions
para vinculação de dados bidirecional. Esta solução funciona melhor quando há um atributo name
.
Também apresentaremos o atributo ngModel
que permite ao checkboxFlag
armazenar o estado real da caixa de seleção quando é alterado. Em seguida, usaremos o atributo change
para vinculação de dados, de forma que, quando o valor no componente for alterado, a caixa de seleção também receberá um novo valor.
Quando ngModel
é usado em formulários, geralmente não funciona, então o atributo ngModelOptions
é melhor usado para garantir que o valor da caixa de seleção mude conforme os dados no componente são alterados.
<input
type="checkbox"
[(ngModel)]="itemChange"
[ngModelOptions]="{standalone: true}"/>
Em alguns casos, o código não funcionará se a entrada não estiver dentro de um formulário, mas fizer parte do loop ngFor
. Além disso, o atributo name
precisa ser incluído na configuração do código para que o código funcione bem.
Enquanto o código de exemplo acima lida com vinculação de dados bidirecional na parte do front-end, esta solução realiza mudanças no back-end, fazendo uso adequado de ngModel
.
<input
[(ngModel)]="itemOne">
type="checkbox"/>
Para fazer com que este código funcione perfeitamente, importe { FormsModule }
de @angular/forms
para app.module.ts
e adicione à matriz de importações parecida com esta:
import { FormsModule } from'@angular/forms';
[...]
@NgModule({
imports: [
[...]
FormsModule
],
[...]
})
O atributo name
deve ser exclusivo para que o estado padrão verificado funcione conforme o esperado e deve estar dentro da tag input
. Mas este código não funcionará se você usar a caixa de seleção dentro de um ngFor
enquanto repete uma matriz de objetos, assim:
[{"checked":true},{"checked":false}]
Então, também podemos usar o atributo change
para fazer a vinculação de dados nas caixas de seleção. Com essa abordagem, criamos os códigos de forma mais detalhada.
O componente html terá a seguinte aparência:
<input #saveCheckboxOne
id="saveCheckboxOne"
type="checkbox"
[checked]="saveCheckbox"
(change)="onSaveCheckboxChange(saveUserNameCheckBox.checked)" />
Em seguida, o component.js será escrito como abaixo.
public saveCheckbox:boolean;
public onSaveCheckboxChange(value:boolean){
this.saveUsername = value;
}
Fisayo is a tech expert and enthusiast who loves to solve problems, seek new challenges and aim to spread the knowledge of what she has learned across the globe.
LinkedIn