Доступ к следующей предыдущей строке при отображении таблицы угловых материалов - PullRequest
0 голосов
/ 26 сентября 2018
<ng-container cdkColumnDef="weight">
  <th cdk-header-cell *cdkHeaderCellDef> Weight </th>
  <td cdk-cell *cdkCellDef="let element"> {{element.weight}} </td>
</ng-container>

Я хочу отобразить {{element.weight} + элемент предыдущего row.weight} как итоговое значение скользящего веса.Какой синтаксис?Источник рабочего образца взят от здесь .

1 Ответ

0 голосов
/ 26 сентября 2018

Я реализовал Скользящий общий вес по пользовательской логике. Пожалуйста, пройдите и прокомментируйте, если у вас есть какие-либо сомнения!

Result

Стекблиц-ссылка

в html

    <!-- Weight Column -->
<ng-container cdkColumnDef="weight">
    <th cdk-header-cell *cdkHeaderCellDef> Weight </th>
    <td cdk-cell *cdkCellDef="let element"> {{getElementWeight(element)}} </td>
    <!--  <td cdk-cell *cdkCellDef="let element"> {{element.weight}} </td> -->
</ng-container>

в ts

declare global {
interface Array < T > {
    getSummedWeight(): any;
    containsElement(e: any): any;
     }
  }

    custom:any = [];
getElementWeight(e) {
    if (this.custom.containsElement(e)) {
        this.custom = [];
        console.log("########contains#####")
    }
    this.custom.push({
        'position': e.position,
        'name': e.name,
        'weight': e.weight,
        'newweight': e.weight + (this.custom.length == 0 ? 0 : this.custom.getSummedWeight())
    })
    console.log(this.custom)
    return this.custom.length == 0 ? 0 : this.custom[this.custom.length - 1].newweight

}


  if (!Array.prototype.getSummedWeight) {
Array.prototype.getSummedWeight = function(): any {
    let totalWeight = this.length == 1 ? this[this.length - 1].weight :
        this[this.length - 1].weight;
    return totalWeight;
    }
}
  if (!Array.prototype.containsElement) {
Array.prototype.containsElement = function(e): any {
    for (let i = 0; i < this.length; i++) {
        if (this[i].position === e.position)
            return true;
    }
    return false;
   }
 } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...