Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

194
Views
No se pudieron marcar todas las casillas de verificación después de hacer clic en Marcar todo

Estoy tratando de hacer un componente de casilla de verificación personalizado.

cuando marqué la casilla de verificación Todo, el valor de _selectedItems cambió en el archivo .ts, pero no en la interfaz de usuario.

De manera similar, después de marcar todas las casillas de verificación (es decir, _selectedItems = allData ), el valor ha cambiado, PERO en la interfaz de usuario, no está seleccionado el valor marcado.

mi componente personalizado.html

 <nb-checkbox *ngIf="_headerOrBody ==='header'" (checkedChange)="OnCheckBoxchangeAll(_allData)" [checked]="_checkedAll" ></nb-checkbox> <nb-checkbox *ngIf="_headerOrBody === 'body'" (checkedChange)="OnCheckBoxchange(_data, $event)" [checked]="_selectedItems.indexOf(_data) >=0" ></nb-checkbox>

componente-personalizado.ts

 OnCheckBoxchange(_data, isChecked: boolean) { if (isChecked === true) { this._selectedItems.push(_data); this._selectedItems = [...this._selectedItems]; } else { this._selectedItems.splice(this._selectedItems.findIndex(x => x.id === _data.id), 1); this._selectedItems = [...this._selectedItems]; } // check arrays are same const array2Sorted = this._allData.slice().sort(); var isSame = this._selectedItems.length === this._allData.length && this._selectedItems.slice().sort().every(function (value, index) { return value === array2Sorted[index]; }); if (isSame) { this._checkedAll = true; } console.log("this._selectedItems", this._selectedItems); console.log("this._allData", this._allData); } OnCheckBoxchangeAll(_data) { this._checkedAll = !this._checkedAll; if (this._checkedAll === true) { this._selectedItems = [..._data]; } else { this._selectedItems = []; } console.log("this._selectedItems", this._selectedItems); console.log("this._allData", this._allData); } }

vacaciones.componente.ts

 // inside <thead> <ngx-custom-checkbox [headerOrBody]="'header'" [allData]="holidays" [data]="data" [(selectedItems)]="selectedItems"> </ngx-custom-checkbox> // inside <tbody> <ngx-custom-checkbox [headerOrBody]="'body'" [allData]="holidays" [data]="data" [(selectedItems)]="selectedItems"> </ngx-custom-checkbox>

marcar una casilla de verificación funciona bien Si marca todas las casillas de verificación, la casilla de verificación checkAll debe marcar (esto no funciona) Si la casilla de verificación checkAll está marcada, entonces todas las casillas de verificación deben marcar (esto no funciona) I supongo que el problema se debe a *ngIf="_headerOrBody ==='header'" y *ngIf="_headerOrBody === 'body'" . Pero no estoy seguro. ¿Algunas ideas?

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!