Получить objectId из строки в угловой таблице данных материала - PullRequest
0 голосов
/ 14 мая 2018

У меня есть таблица данных, почти как в примере на странице 2 материала.

 <div class="example-header">
      <mat-form-field>
        <input matInput (keyup)="applyFilter($event.target.value)" placeholder="Filter">
      </mat-form-field>
    </div>

    <table mat-table class="w100" #table matSort [dataSource]="dataSource">

      <!-- Position Column -->
      <ng-container matColumnDef="branch">
        <th mat-header-cell *matHeaderCellDef mat-sort-header> Standort </th>
        <td mat-cell *matCellDef="let item"> {{item.branch}} </td>
      </ng-container>

      <!-- Name Column -->
      <ng-container matColumnDef="contractName">
        <th mat-header-cell *matHeaderCellDef mat-sort-header> Vertrag </th>
        <td mat-cell *matCellDef="let item"> {{item.contractName}} </td>
      </ng-container>

      <!-- Weight Column -->
      <ng-container matColumnDef="costPerMonth">
        <th mat-header-cell *matHeaderCellDef mat-sort-header> Kosten (p.M.) </th>
        <td mat-cell *matCellDef="let item"> {{item.costPerMonth}}€ </td>
      </ng-container>

      <!-- Symbol Column -->
      <ng-container matColumnDef="remainingTerm">
        <th mat-header-cell *matHeaderCellDef mat-sort-header> Restlaufzeit </th>
        <td mat-cell *matCellDef="let item"> {{item.remainingTerm}} </td>
      </ng-container>

      <ng-container matColumnDef="lastVisit">
          <th mat-header-cell *matHeaderCellDef mat-sort-header> letzter Besuch </th>
          <td mat-cell *matCellDef="let item"> {{item.lastVisit | date:'dd.MM.yyyy'}} </td>
        </ng-container>

      <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
      <tr mat-row *matRowDef="let row; columns: displayedColumns;" (click)="getRecord(row.id)"></tr>
    </table>
      <mat-paginator #paginator [pageSize]="10" [pageSizeOptions]="[5, 10, 20]" [showFirstLastButtons]="true"></mat-paginator>
    </div>

как получить objectId из элемента, когда я щелкаю по определенной строке? Мне нужно вызвать функцию щелчка, которая включает этот идентификатор для следующей функции, но я не нашел ничего об этом здесь, в stackoverflow или в Google.

1 Ответ

0 голосов
/ 15 мая 2018

Я предполагаю, что с ObjectId вы имеете в виду свойство вашего элемента с именем id. В этом случае кажется, что у вас уже есть эта функциональность в вашей таблице.

<tr mat-row *matRowDef="let row; columns: displayedColumns;" (click)="getRecord(row.id)"></tr>

Часть '(click)' реагирует на событие click в одной из строк таблицы. Если щелкнуть строку, будет выполнена функция getRecord (row.id). Здесь id должен быть свойством объектов, отображаемых в вашей таблице. Таким образом, в вашем случае на ваших товарах должен существовать правильный item.id.

Вы можете легко проверить, работает ли это, поместив такую ​​функцию в свой файл ts:

getRecords(rowId: number) {
  console.log(rowId);
}

И проверьте, печатается ли на вашей консоли правильный идентификатор.

...