Я пытаюсь запустить одну функцию - «createThreeDates ()», которая может генерировать три разных результата (даты основаны на -90, -60, -45), используя одну и ту же переменную. После того, как пользователь устанавливает дату в поле ввода, эта переменная даты устанавливается и используется в функции. Кнопка Generate 1 вызывает функцию. Все отлично работает, если мне нужно только одно свидание (не три). К вашему сведению, эта функция использует установленный / импортируемый пакет «add-subtract-date».
В моем коде НЕТ ОШИБОК, но функция возвращает ОДНУ ЖЕ (сорокDaysDate) во все три поля ввода в браузере (?). -Я не знаю, как это возможно, когда у меня разные ngModels.
Вот это component.ts ...
import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';
import { CalculatorService } from '../calculator.service';
import { add, subtract } from 'add-subtract-date';
import { NgForm, FormGroup } from '@angular/forms';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
public fortyDaysDate: any;
public sixtyDaysDate: any;
public ninetyDaysDate: any;
private _retireSet: Date;
@Input() set retireSet(date: Date) {
this._retireSet = new Date(date);
}
constructor(private calculatorService: CalculatorService) {
}
ngOnInit() {
}
public createThreeDates(): void {
let d: Date = this._retireSet;
let ninetyDaysBack = subtract(d, 90, "days");
this.ninetyDaysDate = ninetyDaysBack;
console.log('90 is ' + this.ninetyDaysDate);
let sixtyDaysBack = add(d, 30, "days");
this.sixtyDaysDate = sixtyDaysBack;
console.log('60 is ' + this.sixtyDaysDate);
let fortyDaysBack = add(d, 15, "days");
this.fortyDaysDate = fortyDaysBack;
console.log('45 is ' + this.fortyDaysDate);
// the value of sixtyDaysDate changes to fortyDaysDate value here...
console.log('60 is ' + this.sixtyDaysDate);
}
}
}
Вот это component.html ...
<div class="container">
<form class="ret-form" #calcForm="ngForm" novalidate (ngSubmit)="onSubmit(calcForm)">
<div class="form-group">
<label for="retireSet">Set Date</label>
<input type="datetime-local" id="retireSet" name="RetireCalculatorSetDate" value="retireSet"
ngModel #RetireCalculatorSetDate="ngModel" [(ngModel)]="retireSet" class="form-control" />
</div>
<div>
<button type="button" class="btn btn-lg btn-outline-dark" (click)="createThreeDates()">Generate 1</button>
<div>
<input type="text" name="RetireCalculatorDay90" value="ninetyDaysDate" ngModel #RetireCalculatorDay90="ngModel"
[(ngModel)]="ninetyDaysDate" class="form-control" />
</div>
<div>
<input type="text" name="RetireCalculatorDay60" value="sixtyDaysDate" ngModel #RetireCalculatorDay60="ngModel"
[(ngModel)]="sixtyDaysDate" class="form-control" />
</div>
<input type="text" name="RetireCalculatorDay45" value="fortyDaysDate" ngModel #RetireCalculatorDay45="ngModel"
[(ngModel)]="fortyDaysDate" class="form-control" />
</div>
</form>
</div>