Содержание

Gillardo / bootstrap-ui-datetime-picker

AngularJs directive to use a date and/or time picker as a dropdown from an input.

Установка

Чтобы использовать директиву, у вас должны быть уже включены следующие директивы angular-ui

У вас уже должна быть зависимость ui.bootstrap, включенная в ваш файл app.js, как показано ниже. Затем вам нужно добавить ui.bootstrap.datetimepicker

angular.module('app', ['ui.bootstrap', 'ui.bootstrap.datetimepicker']);

Загрузите исходный код из файла dist / datetime-picker.min.js и включите его в свой проект.
Или используйте Bower

bower install --save bootstrap-ui-datetime-picker

и ссылка на ``bower_components / bootstrap-ui-datetime-picker / dist / datetime-picker.min.js``

Опции и свойства

У вас есть следующие свойства, доступные для использования с директивой. Все они являются необязательными

isOpen

Отображается ли всплывающее / раскрывающееся меню. По умолчанию false

closeOnDateSelection

Закройте всплывающее окно после выбора даты. TimePicker будет оставаться открытым, пока пользователь не закроет.

closeOnTimeNow

Закройте всплывающее окно после того, как время было выбрано.

enableDate

Хотите ли вы, чтобы пользователь мог выбрать дату. По умолчанию true

enableTime

Хотите ли вы, чтобы пользователь мог выбрать время. По умолчанию true

buttonBar

Чтобы показать или скрыть панель кнопок или любую из кнопок внутри нее. По умолчанию используется uiDatetimePickerConfig. Укажите только те элементы, которые вы хотите переопределить, поскольку каждая кнопка по умолчанию соответствует настройке uiDatetimePickerConfig, если она не настроена в области datetimePicker

initialPicker

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

reOpenDefault

Средство выбора, которое следует установить в качестве средства выбора, которое будет открываться после того, как элемент управления уже был открыт хотя бы один раз. Значение false по умолчанию будет использовать средство выбора даты, если включены и дата, и время, или только включенный элемент управления, если используются только время или дата.

datepickerOptions

Объект для настройки параметров datepicker(можно найти на сайте angularUI)

timepickerOptions

Объект для настройки параметров для timepicker (можно найти на сайте angularUI)

defaultTime

Начальное время при выборе новой даты (например, «14: 00: 00» или «14:00»)

whenClosed

Функция обратного вызова, вызываемая при закрытии раскрывающегося списка средства выбора. См. Демонстрацию для более подробной информации.

saveAs

Логическое значение для переключения сохранения даты в модель в виде строки или функция ngModel. $ Parsers для преобразования объекта Date в строку. Возможные значения:

readAs

Логическое значение для преобразования строкового (или Date.valueOf ()) значения обратно в объект Date из ngModel или функции ngModel. $ Formatters для полного выполнения преобразования.

uiDatetimePickerConfig

Теперь параметры datetimePicker глобально установлены по умолчанию. Если вы не укажете значения в объявлении, вместо этого используются параметры конфигурации. Вот параметры по умолчанию

.constant('uiDatetimePickerConfig', {
    dateFormat: 'yyyy-MM-dd HH:mm',
    defaultTime: '00:00:00',
    html5Types: {
        date: 'yyyy-MM-dd',
        'datetime-local': 'yyyy-MM-ddTHH:mm:ss.sss',
        'month': 'yyyy-MM'
    },
    initialPicker: 'date',
    reOpenDefault: false,
    enableDate: true,
    enableTime: true,
    buttonBar: {
        show: true,
        now: {
            show: true,
            text: 'Now',
            cls: 'btn-sm btn-default'
        },
        today: {
            show: true,
            text: 'Today',
            cls: 'btn-sm btn-default'
        },
        clear: {
            show: true,
            text: 'Clear',
            cls: 'btn-sm btn-default'
        },
        date: {
            show: true,
            text: 'Date',
            cls: 'btn-sm btn-default'
        },
        time: {
            show: true,
            text: 'Time',
            cls: 'btn-sm btn-default'
        },
        close: {
            show: true,
            text: 'Close',
            cls: 'btn-sm btn-default'
        },
        cancel: {
            show: false,
            text: 'Cancel',
            cls: 'btn-sm btn-default'
        }
    },
    closeOnDateSelection: true,
    closeOnTimeNow: true,
    appendToBody: false,
    altInputFormats: [],
    ngModelOptions: {},
    saveAs: false,
    readAs: false
})

css

Лично мне не нравится внешний вид самого календаря angular-ui, потому что кнопки настроены на использование стиля btn-default. Чтобы обойти это, к средству выбора даты и времени применяются 3 класса css, которые зависят от отображаемого средства выбора. Эти классы окружают элемент div, который содержит datepicker и timepicker angular -ui. Используя эти классы, вы можете изменить стиль календаря.

.datetime-picker-dropdown

Применяется к раскрывающемуся списку, в котором находятся средства выбора.

.datetime-picker-dropdown > li.date-picker-menu

Применяется, когда виден выбор даты

.datetime-picker-dropdown > li.time-picker-menu

Применяется, когда отображается окно выбора времени. Кнопки в buttonBars можно переопределить, установив классы css, как указано выше.

EXAMPLE

Например, если я добавлю этот код css, вы увидите разницу с календарем на изображениях ниже.

.datetime-picker-dropdown > li.date-picker-menu div > table .btn-default {
    border: 0;
}

Example

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

HTML

<p class="input-group">
    <input type="text" class="form-control" datetime-picker="dd MMM yyyy HH:mm" ng-model="myDate" is-open="isOpen"  />
    <span class="input-group-btn">
        <button type="button" class="btn btn-default" ng-click="openCalendar($event, prop)"><i class="fa fa-calendar"></i></button>
    </span>
</p>

JAVASCRIPT

app.controller('MyController', function() {
    var that = this;
 
    this.isOpen = false;
 
    this.openCalendar = function(e) {
        e.preventDefault();
        e.stopPropagation();
 
        that.isOpen = true;
    };
});