Как установить пользовательскую дату для bsdatepicker на bsValueChange - PullRequest
0 голосов
/ 31 мая 2019

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

Это то, чего я пытаюсь достичь, скажем, я выбираю сегодняшнюю дату и хочу показать начало дня, например: 31.05.2009 00:00:00 и конец дня 31/05 / 2019 23: 59: 59

Я считаю, что bsdatepicker не предоставляет этого из коробки, поэтому мне нужно манипулировать датой, используя момент и установить ее в качестве значения просмотра. Ограниченно, что bsValue принимает только дату, и если вы должны были переназначить ее во время выходного события (bsValueChange). Вы получаете максимальную ошибку стека вызовов.

Попытка изменить это значение с помощью ngModel при изменении, но выбранное значение пользователя всегда имеет приоритет над значением, которое установлено в переменной ngModel.

<input ([ngModel])="myVar" bsDatepicker (bsValueChange)="onChange($event)">

public onChange(date: Date) {
  myVar = 31/05/2019 00:00:00 // ths will be overriden by the user's selected date which made think that 

this.datepicker.bsValue = 31/05/2019 00:00:00 //moment manipulated date - this will trigger a maximum callstack error.
}

Это оставляет мне возможность работать напрямую с DOM, потому что я пробовал все виды с renderer2 (для поддержания рекомендуемого подхода и «безопасности» по угловым направлениям), но не увенчался успехом

1 Ответ

0 голосов
/ 05 июня 2019

удалось обойти эту проблему с помощью атрибута [value] на целевом входе. После того как дата отформатирована, чтобы включить единицу времени. Это отформатированное значение даты затем устанавливается в атрибуте [value].

Это привело к непредвиденной проблеме, когда, если дата очищена (пустая строка), это, в свою очередь, заставляет bsDatepicker установить «Недопустимая дата» для целевого ввода. Чтобы обойти это, я следовал это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...