我很难完成它但没有用......它说的错误是 无法读取未定义的属性'匹配'。任何人都可以建议一些帮助..........
我的,
rows: Array<any> = [];
columns: Array<any> = [
{title: 'Name', name: 'accountname'},
];
page: number = 1;
itemsPerPage: number = 10;
maxSize: number = 5;
numPages: number = 1;
length: number = 0;
config: any = {
paging: false,
sorting: {columns: this.columns},
filtering: {filterString: '', columnName: 'position'}
};
ng2TableData: Array<any> = this.students;
constructor(public http:Http) { console.log(this.students);
this.length = this.ng2TableData.length;
}
ngOnInit(): void {
this.getstudents();
this.onChangeTable(this.config);
}
changePage(page: any, data: Array<any> = this.ng2TableData): Array<any> {
let start = (page.page - 1) * page.itemsPerPage;
let end = page.itemsPerPage > -1 ? (start + page.itemsPerPage) : data.length;
return data.slice(start, end);
}
changeSort(data: any, config: any): any {
if (!config.sorting) {
return data;
}
let columns = this.config.sorting.columns || [];
let columnName: string = void 0;
let sort: string = void 0;
for (let i = 0; i < columns.length; i++) {
if (columns[i].sort !== '' && columns[i].sort !== false) {
columnName = columns[i].name;
sort = columns[i].sort;
}
}
if (!columnName) {
return data;
}
// simple sorting
return data.sort((previous: any, current: any) => {
if (previous[columnName] > current[columnName]) {
return sort === 'desc' ? -1 : 1;
} else if (previous[columnName] < current[columnName]) {
return sort === 'asc' ? -1 : 1;
}
return 0;
});
}
changeFilter(data: any, config: any): any {
if (!config.filtering) {
return data;
}
let filteredData: Array<any> = data.filter((item: any) =>
item[config.filtering.columnName].match(this.config.filtering.filterString));
return filteredData;
}
onChangeTable(config: any, page: any = {page: this.page, itemsPerPage: this.itemsPerPage}): any {
if (config.filtering) {
Object.assign(this.config.filtering, config.filtering);
}
if (config.sorting) {
Object.assign(this.config.sorting, config.sorting);
}
var headers = new Headers();
headers.append('Content-Type', 'application/json')
this.http.get('http://localhost:3009/api/auth/getstudents', { headers: headers })
.subscribe(
result => {
if (result.json().error_code == 0) {
this.res = result.json().result;
this.students = this.res;
this.ng2TableData = this.students;
let filteredData = this.changeFilter(this.ng2TableData, this.config);
let sortedData = this.changeSort(filteredData, this.config);
this.rows = page && config.paging ? this.changePage(page, sortedData) : sortedData;
this.length = sortedData.length;
}
else {
this.students = result.json().result;
}
})
}
我很难完成它但没有用......它说的错误是 无法读取未定义的属性'匹配'。任何人都可以建议一些帮助..........