angular2 table 自动排序sortable

前端之家收集整理的这篇文章主要介绍了angular2 table 自动排序sortable前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
import {NgbPaginationConfig} from "@ng-bootstrap/ng-bootstrap";
import {Input,Component} from "@angular/core";
@Component({
    selector: 'table-sortable',templateUrl: './table-sortable.html',providers: [
        NgbPaginationConfig
    ]
})
export class TableSortable {

    @Input() columns: any[];
    @Input() data: any[];
    @Input() sort: any;
    page:number = 1;
    pageSize:number = 10;

    constructor(config: NgbPaginationConfig) {
        // customize default values of paginations used by this component tree
        config.size = 'sm';
        config.boundaryLinks = true;
        config.pageSize = this.pageSize;
    }

    selectedClass(columnName): any {
        return columnName == this.sort.column ? 'sort-' + this.sort.descending : false;
    }

    changeSorting(columnName): void {
        var sort = this.sort;
        if (sort.column == columnName) {
            sort.descending = !sort.descending;
        } else {
            sort.column = columnName;
            sort.descending = false;
        }
    }

    convertSorting(): string {
        return this.sort.descending ? '-' + this.sort.column : this.sort.column;
    }
}
<table class="table table-hover table-striped table-sortable">
    <thead>
    <tr>
        <th *ngFor="let column of columns" [class]="selectedClass(column.variable)" (click)="changeSorting(column.variable)">
            {{column.display}}
        </th>
    </tr>
    </thead>
    <tbody>
    <tr *ngFor="let object of data | orderBy : convertSorting() | paging: page: pageSize">
        <td *ngFor="let column of columns">
            {{object[column.variable] | format : column.filter}}
        </td>
    </tr>
    </tbody>
</table>
<div class="row">
    <div class="col-xs-3">
        共{{data.length ? data.length : 0}}条数据  当前第{{page}}页
    </div>
    <div class="col-xs-9">
        <ngb-pagination [collectionSize]="data.length" [(page)]="page"></ngb-pagination>
    </div>
</div>

猜你在找的Angularjs相关文章