使用服务为多个组件创建通用方法

问题描述 投票:0回答:1

我有一个多种方法来排序不同的表:

sortFruits(sort: Sort) {
    const direction = sort.direction === 'asc' ? 'asc' : 'desc';
    this.data.fruits= orderBy(this.data.fruits, [sort.active], [direction]);
  }

sortFamily(sort: Sort) {
    const direction = sort.direction === 'asc' ? 'asc' : 'desc';
    this.data.family= orderBy(this.data.family, [sort.active], [direction]);
  }

我试图在服务上做一个通用的方法:

sortTable(sort: Sort, data: any) {
    const direction = sort.direction === 'asc' ? 'asc' : 'desc';
    return orderBy(data, [sort.active], [direction]);
    // return data;
  }

并直接在view组件上调用此服务:

 <table matSort (matSortChange)="matSort.sortTable($event, data.fruits)">

但这种方式不起作用: - /,我做错了什么?

谢谢

angular angular-material
1个回答
0
投票

确定它有效,我错过了视图中变量的重新分配:

<table matSort (matSortChange)="data.fruits = matSort.sortTable($event, data.fruits)">

并返回服务上的数据值

sortTable(sort: Sort, data: any) {
    const direction = sort.direction === 'asc' ? 'asc' : 'desc';
    data = orderBy(data, [sort.active], [direction]);
    return data;
  }

谢谢 :-)

© www.soinside.com 2019 - 2024. All rights reserved.