@R-n-D
web-программист

Как передать параметр в js библиотеку?

Доброго времени суток!
В проекте использую Calendario.js для создания календаря событий.

После загрузки страницы и инициализации календаря, отправляю ajax запрос, где получаю в json формате данные о мероприятиях.

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

$.ajax({
				type: "POST",
				url: '/ajax/getListEvent.php',
				dataType: 'json',
				data: ({
					action:'getlist',
					month: 3,
					year: 2017,
				}),
				success: function(data) {
					$.each(data, function(i, item) {
						var date  = item.date;
						var img = item.img;
						
						cal.setData({
							date : '<img src="'+img+'" />'
							//'03-31-2017' : '<img src="/upload/558/114_80_2/123.jpg" />'
						});
					});
				}
			});


В консоли вываливается ошибка библиотеки, смотрим строку с проверкой значений на ошибки:

if(/^\d{2}-\d{2}-\d{4}/.test(key) || /^\d{2}-\d{2}-YYYY/.test(key) || /^\d{2}-DD-YYYY/.test(key) || /^MM-\d{2}-YYYY/.test(key) ||
        /^\d{2}-DD-YYYY/.test(key) || /^MM-\d{2}-\d{4}/.test(key) || /^\d{2}-DD-\d{4}/.test(key) || key == 'TODAY') {} else
         console.log(key + ' is an Invalid Date. Date should not contain spaces, should be separated by \'-\' and should be in the ' + 
          'format \'MM-DD-YYYY\'. That ain\'t that difficult!');


Дата в нужном формате. По-этому, вывожу в консоль значение:

console.log(key, val);

Ответ в консоли:

date <img src="/upload/558/114_80_2/123.jpg" />

То есть понимаем, что date передалась как строка, а img - нормально интерпретировалась.
И если при добавлении события закомментировать строку с передаваемыми параметрами, и передавать сразу значения

cal.setData({
							
							'03-31-2017' : '<img src="/upload/558/114_80_2/123.jpg" />'
						});


То все работает нормально..
Подскажите, пожалуйста, что я делаю не так, при передаче данных?
  • Вопрос задан
  • 195 просмотров
Решения вопроса 2
@abberati
frontend-разработчик
попробуйте
cal.setData({
    [date] : '<img src="'+img+'" />'
});


learn.javascript.ru
Ответ написан
@pekc83
// Такой синтаксис подразумевает, что date это ключ 'date'
date : '<img src="'+img+'" />' === 'date' : '<img src="'+img+'" />'

// Как вариант сделать так:
var obj = {};
obj[date] = '<img src="'+img+'" />';
cal.setData(obj);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы