javascript - Angular prikazuje pogrešku stare verzije datoteke, ali je pogreška zapravo riješena
Imam metodu getMonths() i želio bih joj dodati argument year. Metoda se koristi samo na jednom mjestu:
<div *ngFor="let month of getMonths()" class="calendar-table">
...
</div>
Ako dodam argument metodi getMonths(year) i promijenim gornji kod da pozove getMonths(selectedYear), Angular mi daje sljedeću pogrešku:
ERROR in src/app/user-calendar/user-calendar.component.ts:108:27 - error TS2554: Expected 1 arguments, but got 0.
108 for(let month of this.getMonths()) {
~~~~~~~~~~~
src/app/user-calendar/user-calendar.component.ts:35:13
35 getMonths(year) {
~~~~
An argument for 'year' was not provided.
Primijetite da Angular izgleda koristi prethodnu verziju mog predloška, gdje selectedYear nije naveden. Pokušao sam zaustaviti ng serve i pokrenuti ga ponovno, također sam pokušao pokrenuti ng build --prod ali pogreška ostaje.
Za razliku od poruke o pogrešci, predložak izgleda ovako:
<div *ngFor="let month of getMonths(selectedYear)" class="calendar-table">
...
</div>
Odgovor #1
Nikada nisam vidio praksu iteriranja preko vrijednosti koju vraća funkcija, pa sam provjerio ovaj referentni materijal - *ngFor koji koristi funkciju, vraća petlju. Nemam dobar razlog zašto se vaš problem javlja, ali bih želio predložiti promjenu vaše petlje da iterira preko niza kojem je dodijeljena vrijednost koju je vraćao getMonths.