установленное значение ngbDatepicker - PullRequest
0 голосов
/ 11 февраля 2019

В моем приложении Angular, управляемой шаблоном форме, у меня есть поле даты рождения и добавлен ngbDatepicker для этого поля, как указано.

<input #dob="ngbDatepicker"
                 (click)="dob.toggle()"
                 [(ngModel)]="model.dob"
                 [ngClass]="{ 'is-invalid': f.submitted &&  dob.invalid }"
                 class="form-control"
                 id="dob"
                 name="dob"
                 required
                 type="text"
                 [disabled]="isDisabled"
                 [class.ash]="isDisabled"
                 [class.highlight]="!isDisabled"
                 ngbDatepicker
          />

Я получаю бэкэнд API формы даты рождения какdob: "2019-02-16 00:00:00" и я хочу передать это значение, как показано ниже,

 { 
  "year": 2019, 
  "month": 2, 
  "day": 26 
 }

, потому что ngbDatepicker получает значение в этом формате.Это то, что я пытался преобразовать мою дату рождения.

toDate(dob) {
 const [year, month, day] = dob.split('-');
 const obj = { year: year, month: month, day: day.split(' ')[0].trim() };
 console.log('convert date', obj);
 this.model.dob = obj;
 //  this.model.dob ={year: 2017, month: 5, day: 13};
}

Вывод {year: "2019", month: "02", day: "16"}, я хочу удалить кавычки из этого вывода.Я перепробовал так много методов и не смог получить нужный результат.Я мог бы получить {"year": 2019, "month": 02, "day": 16} этот вывод, используя приведенный ниже код.

JSON.stringify({ "year": "2019", "month": "2", "day": "26" }, (key, value) => !isNaN(+value) ? +value : value);

Но чтобы установить дату, мне нужно установить объект следующим образом.{year: 2019, month: 2, day: 26 }

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019
<ngb-datepicker #d [startDate]="{year: 1789, month: 7}"></ngb-datepicker>

Вы можете написать так.

[startDate] = "{год: из API dob.getYear (), месяц: из API dob.getMonth ()}"

0 голосов
/ 12 февраля 2019

Я мог бы решить мою проблему с помощью 'parseInt'. Используйте эту ссылку , чтобы узнать больше о parseInt.Я изменил свой код, как показано ниже.

toDate(dob) {
if (dob) {
  const [year, month, day] = dob.split('-');
  const obj = { year: parseInt(year), month: parseInt(month), day: 
    parseInt(day.split(' ')[0].trim()) };
  this.model.dob = obj;
  }
}
...