Динамические имена в кендо DateRangePicker - PullRequest
0 голосов
/ 03 мая 2018

У меня есть определитель даты в Kendo:

    $('#range').daterangepicker(
    {
        ranges: {
            'Today': [moment(), moment()],
            'Yesterday': [moment().subtract('days', 1), moment().subtract('days', 1)],
            'Last 7 Days': [moment().subtract('days', 6), moment()],
            'Last 30 Days': [moment().subtract('days', 29), moment()],
            'This Month': [moment().startOf('month'), moment().endOf('month')],
            'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]
        },
        startDate: moment().subtract('days', 29),
        endDate: moment()
    },
    function(start, end) {
        $('#startDate').val(start.format('M/D/YYYY'));
        $('#endDate').val(end.format('M/D/YYYY'));
        refreshFileList();
    }
).prev().on("click", function() {
    $(this).next().focus();
});

Как я могу изменить «Сегодня», «Вчера» и т. Д., Чтобы значения считывались из переменной, а не были жестко запрограммированы в Javascript. Например:

var oneMonth = "One Month";

    $('#range').daterangepicker(
    {
        ranges: {
            oneMonth : [moment().subtract('month', 1), moment()],
            threeMonths: [moment().subtract('month', 3), moment()],
            sixMonths: [moment().subtract('month', 6), moment()],
            allMonths: [moment().subtract('year', 15), moment()]
        },
        startDate: moment().subtract('month', 3),
        endDate: moment()
    },
    function (start, end) {
        $('#startDate').val(start.format('M/D/YYYY'));
        $('#endDate').val(end.format('M/D/YYYY'));
        refreshThumbnails();
    }).prev().on("click", function () {
    $(this).next().focus();
});

Когда я делаю то же самое, что и выше, вместо отображения значения oneMonth («Один месяц»), оно отображает имя переменной («oneMonth») в средстве выбора диапазона дат.

1 Ответ

0 голосов
/ 05 мая 2018

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

Создать объект данных до спецификации диапазона. Используйте обозначение скобок объекта, чтобы добавить динамическое имя свойства к объекту. Используйте объект для свойства опции диапазонов.

oneMonthLabel = "One Month";

myranges = {};
myranges[oneMonthLabel] = [moment().subtract('month', 1), moment()];

$('#range').daterangepicker(
...
    ranges: myRanges,

Если вам не нужно устанавливать свойство на основе переменной, просто используйте имя свойства в кавычках.

    ranges: {
        "One month" : [moment().subtract('month', 1), moment()],
        "3 months": [moment().subtract('month', 3), moment()],
        "6 months": [moment().subtract('month', 6), moment()],
        "All months": [moment().subtract('year', 15), moment()]
    },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...