UNPKG

ng-ytl-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

80 lines (75 loc) 2.32 kB
import { Component, OnInit } from '@angular/core'; @Component({ selector: 'nz-demo-table-selection', template: ` <nz-table #nzTable [nzDataSource]="data" [nzPageSize]="10" (nzDataChange)="_displayDataChange($event)" (nzPageIndexChange)="_refreshStatus()" (nzPageSizeChange)="_refreshStatus()"> <thead nz-thead> <tr> <th nz-th nzCheckbox> <label nz-checkbox [(ngModel)]="_allChecked" [nzIndeterminate]="_indeterminate" (ngModelChange)="_checkAll($event)"> </label> </th> <th nz-th><span>Name</span></th> <th nz-th><span>Age</span></th> <th nz-th><span>Address</span></th> </tr> </thead> <tbody nz-tbody> <tr nz-tbody-tr *ngFor="let data of nzTable.data"> <td nz-td nzCheckbox> <label nz-checkbox [(ngModel)]="data.checked" (ngModelChange)="_refreshStatus($event)"> </label> </td> <td nz-td> <a>{{data.name}}</a> </td> <td nz-td>{{data.age}}</td> <td nz-td>{{data.address}}</td> </tr> </tbody> </nz-table>`, styles : [] }) export class NzDemoTableSelectionComponent { _allChecked = false; _indeterminate = false; _displayData = []; data = [ { key : '1', name : 'John Brown', age : 32, address: 'New York No. 1 Lake Park', }, { key : '2', name : 'Jim Green', age : 42, address: 'London No. 1 Lake Park', }, { key : '3', name : 'Joe Black', age : 32, address: 'Sidney No. 1 Lake Park', } ]; _displayDataChange($event) { this._displayData = $event; this._refreshStatus(); } _refreshStatus() { const allChecked = this._displayData.every(value => value.checked === true); const allUnChecked = this._displayData.every(value => !value.checked); this._allChecked = allChecked; this._indeterminate = (!allChecked) && (!allUnChecked); } _checkAll(value) { if (value) { this._displayData.forEach(data => { data.checked = true; }); } else { this._displayData.forEach(data => { data.checked = false; }); } this._refreshStatus(); } }