Pobieranie wartości interpolacji z <td>

0

Dzień dobry.,

w jaki sposób można pobrać wartość interpolacji dla formatki:

<ng-container matColumnDef="LP">
  <th mat-header-cell *matHeaderCellDef mat-sort-header>L.p. </th>
  <td mat-cell *matCellDef="let element; let i = index">
    {{ (i + 1) }}
  </td>
</ng-container>

Jest to część formularza, która wyświetla numer indexu wyrenderowanej kolumny. Czy można do pobrać w prosty sposób? Z tego co rozumiem, ngModel działa tylko z <input/>, <textarea>, <select> - więc nic z tego.

0

Nie możesz po prostu wykorzystać findIndex() i zrobić do niego + 1?

1
MichalPLW napisał(a):

w jaki sposób można pobrać wartość interpolacji dla formatki:

Ale "dobrać" w sensie odczytać jednorazowo? Czy dobrać, w sensie zapiąć bindowanie dwukierunkowe tak żebyś mógł to odczytywać i zapisywać tak jak ngModel?

Jeśli to pierwsze, to na pewno nie powinieneś tego robić, powinieneś wynieś tą zmienną którą wsadzasz między {{ }}, i odczytać ją z logiki (czyli logic -> logic; nie rób logic -> view-> logic). Jeśli to drugie, to w sumie wychodzi na to samo - nie powinieneś wyświetlać tej i+1 prosto z *matCellDef, tylko dobrać się do tego w logice komponentu, oklikać zmianę i odczyt tego, i potem po prostu wyrenderować jej stan.

0

Bardzo dziękuję za zainteresowanie. No właśnie zrobiłem w ten prosty sposób:

tr = document.getElementsByTagName('tr');
id = this.tr.length + 1;

ale jak rozumiem nie jest to zalecane.
Poprawiłem na:
"tylko dobrać się do tego w logice komponentu, oklikać zmianę i odczyt tego, i potem po prostu wyrenderować jej stan."
Bardzo dziękuję za cenne wskazówki.

0
MichalPLW napisał(a):

Bardzo dziękuję za zainteresowanie. No właśnie zrobiłem w ten prosty sposób:

tr = document.getElementsByTagName('tr');
id = this.tr.length + 1;

ale jak rozumiem nie jest to zalecane.
Poprawiłem na:
"tylko dobrać się do tego w logice komponentu, oklikać zmianę i odczyt tego, i potem po prostu wyrenderować jej stan."
Bardzo dziękuję za cenne wskazówki.

Nie rób tego w taki sposób, to jest całkowicie nie angularowe i zupełnie na około.

0

tr.length + 1 - przecież wynik z tego nie zwróci mu nawet poprawnej wartości. Od 0 - 9 = 1, od 10 - 99 = 2, itd. 🤔

1 użytkowników online, w tym zalogowanych: 0, gości: 1