Pobieranie wartości interpolacji z <td>

Pobieranie wartości interpolacji z <td>
MichalPLW
  • Rejestracja:około 2 lata
  • Ostatnio:11 miesięcy
  • Lokalizacja:Lidzbark Warmiński
  • Postów:13
0

Dzień dobry.,

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

Kopiuj
<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.

edytowany 1x, ostatnio: Riddle
AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2161
0

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

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:minuta
  • Lokalizacja:Laska, z Polski
  • Postów:10074
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.

MichalPLW
  • Rejestracja:około 2 lata
  • Ostatnio:11 miesięcy
  • Lokalizacja:Lidzbark Warmiński
  • Postów:13
0

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

Kopiuj
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.

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:minuta
  • Lokalizacja:Laska, z Polski
  • Postów:10074
0
MichalPLW napisał(a):

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

Kopiuj
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.

AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2161
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. 🤔

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.