правильный способ добавить дни в массив - PullRequest
0 голосов
/ 02 июня 2019

Я пытаюсь составить таблицу со списком дат платежей из кредитной заметки, проблема в том, что все мои строки получают одну и ту же дату.

Я использую момент, и проблема в том, что когда я сохраняю значение как строку формата данных, все идет хорошо, но мне нужен объект, чтобы сохранить его как дату с углеродом на фоне.

Это фактический код

crearTablaPagos(): void{

         let pagoIndividual = this.comprasVentasForm.totalConIntereses/this.numeroCuotas;
         //console.log(fecha);
         let contador = 1; 
         let nextFecha = moment(this.comprasVentasForm.incio);
         this.comprasVentasForm.tablaPagos = [];

         while(contador <= this.numeroCuotas) {
            let pago: any;
            pago = {};

            pago.numeroCuota = contador;
            pago.valorCuota = (pagoIndividual).toFixed(2);  
            pago.fechaPago = nextFecha.add(this.plazo, 'days').format('YYYY-MMM-DD');
            pago.comprasVentas  = this.comprasVentasForm.id;
            pago.saldo  = (pagoIndividual).toFixed(2);
            this.comprasVentasForm.tablaPagos.push(pago);


            contador++;
         }


    }

, и вот как я его показываю

 <tr *ngFor="let pago of comprasVentasForm.tablaPagos">
                                    <th>{{pago.numeroCuota}}</th>
                                    <th>{{pago.fechaPago}}</th>
                                    <th>{{pago.valorCuota}}</th>
                                </tr>

enter image description here

но это не то, что мне нужно

Мне нужен момент objet, поэтому я делаю это

 crearTablaPagos(): void{

         let pagoIndividual = this.comprasVentasForm.totalConIntereses/this.numeroCuotas;
         //console.log(fecha);
         let contador = 1; 
         let nextFecha = moment(this.comprasVentasForm.incio);
         this.comprasVentasForm.tablaPagos = [];

         while(contador <= this.numeroCuotas) {
            let pago: any;
            pago = {};

            pago.numeroCuota = contador;
            pago.valorCuota = (pagoIndividual).toFixed(2);  
            pago.fechaPago = nextFecha;
            pago.comprasVentas  = this.comprasVentasForm.id;
            pago.saldo  = (pagoIndividual).toFixed(2);
            this.comprasVentasForm.tablaPagos.push(pago);

            nextFecha =  nextFecha.add(this.plazo, 'days');
            contador++;
         }


    }

и показываю его


                                <tr *ngFor="let pago of comprasVentasForm.tablaPagos">
                                    <th>{{pago.numeroCuota}}</th>
                                    <th>{{pago.fechaPago.format('YYYY-MMM-DD')}}</th>
                                    <th>{{pago.valorCuota}}</th>
                                </tr>

но теперь я получаю это

enter image description here

это сводит меня с ума, я не понимаю, почему это происходит

Я хочу знать, чтолучший способ добавить дни в мой массив

1 Ответ

1 голос
/ 03 июня 2019

Вы добавляете дни к одной и той же ссылке на дату, и все элементы массива также указывают на одну и ту же ссылку на дату.

Попробуйте выполнить клонирование перед добавлением дней, например

nextFecha = nextFecha.clone();
nextFecha.add(this.plazo, 'days');
...