AJAX получить запрос и JavaScript - PullRequest
0 голосов
/ 29 апреля 2018

Очень плохо знаком с Javascript. Я не совсем уверен, как это объяснить, так что, надеюсь, мой пример ниже объясняет, что я сделал:

  let events = {
    '04-23-2018' : '<a href="http://tympanus.net/codrops/2012/11/23/three-script-updates/">Three Script Updates</a>',
    '04-21-2018' : '<a href="http://tympanus.net/codrops/2012/11/21/adaptive-thumbnail-pile-effect-with-automatic-grouping/">Adaptive Thumbnail Pile Effect with Automatic Grouping</a>',
    '04-20-2018' : '<a href="http://tympanus.net/codrops/2012/11/20/learning-principles-for-improving-your-css/">Learning Principles for Improving Your CSS</a>',
    '04-19-2018' : '<a href="http://tympanus.net/codrops/2012/11/19/responsive-css-timeline-with-3d-effect/">Responsive CSS Timeline with 3D Effect</a>'
  };

  $.get( "/api/events").done(function( data ) {
    events["04-26-2018"] = '<a href="http://tympanus.net/codrops/2012/04/30/fluid-css3-slideshow-with-parallax-effect/">BING BONG BONG SSSSS</a><a href="http://tympanus.net/codrops/2012/04/30/im-creator-giveaway/">IM Creator Giveaway</a>';
  });

В приведенном выше запросе get я нахожусь на стадии отладки. Я просто передаю некоторые переменные, чтобы проверить асинхронный / простой характер запросов get.

Далее в моем сценарии есть следующее:

let cal = $calendar.calendario({
  onDayClick : function( $el, $contentEl, dateProperties ) {
    if( $contentEl.length > 0 ) {
     showEvents( $contentEl, dateProperties );
    }
  },
  caldata : events,
  displayWeekAbbr : true
});

Я установил caldata для событий.

Однако в caldata содержится только первый объект, а не пара ключей-значений, которые я добавил из функции done запроса get ...

Как получить собранные данные для передачи до объявления let? Я попытался объявить let cal после объявления клавиши Events ["04-26-2018"], но этот let cal также нужен другим функциям из скрипта ?? Так растерялся и действительно нуждаюсь в некоторых подсказках по этому поводу.

Спасибо.

1 Ответ

0 голосов
/ 29 апреля 2018

Не назначать при инициализации, назначать caldata после успешного обратного вызова, как показано ниже:

let cal = $calendar.calendario({
  onDayClick : function( $el, $contentEl, dateProperties ) {
    if( $contentEl.length > 0 ) {
     showEvents( $contentEl, dateProperties );
    }
  },
  displayWeekAbbr : true
});

$.get( "/api/events").done(function( data ) {
    events["04-26-2018"] = '<a href="http://tympanus.net/codrops/2012/04/30/fluid-css3-slideshow-with-parallax-effect/">BING BONG BONG SSSSS</a><a href="http://tympanus.net/codrops/2012/04/30/im-creator-giveaway/">IM Creator Giveaway</a>';
    cal.caldata = events;
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...