Кирби Роутинг и Аякс - PullRequest
       62

Кирби Роутинг и Аякс

0 голосов
/ 18 февраля 2019

Я хочу, чтобы мой ajax-вызов загружал контент, а также работал с вводом URL.Но все, что я получаю, это страница с ошибкой.

Я пытаюсь добиться этого с помощью маршрутизации, которая идет с Кирби.

Маршрутизация

return [
  'routes' => [
    [
      'pattern' => 'speaker/(:any)',
      'action'  => function () {
        $kirby = new Kirby();
        $page = page('speaker-detail');

        if($page) {
            $html = $kirby->render($page);
            return new Response($html);
        } else {
            $page = site()->errorPage();
            site()->visit($page);
        }
      },
      'method' => 'POST'
    ],
    [
      'pattern' => 'speaker/(:any)',
      'action'  => function () {
        $page = page('speaker-detail');
            if($page) {
                $data = array('modal' => $page->url());
                return array('keynote', $data);
            } else {
                $page = site()->errorPage();
                return site()->visit($page);
            }
      }
    ]
  ]
];

Контейнер для контента

<div id="modal-container" data-modal="<?php echo isset($modal) ? $modal : '' ?>" class="subpageWrapper"></div>

И вызов ajax

var startModal = $('.subpageWrapper').data('modal');

if (startModal) {
    openUrlInModal(startModal, $('.subpageWrapper'));
}

$("body").on("click touch", ".loadSubpage", function (event) {

    event.preventDefault(); 
    var href = $(this).attr("href");
    window.history.pushState(null,null,href);

    function openUrlInModal(){
        $.ajax({
            url:href,
            success: function(data){
                $(".subpageWrapper").html(data);
            }
        });
    }

    openUrlInModal();
});

Было бы неплохо, если бы кто-то смогпомогите мне, или знаете, почему он не работает, как ожидалось.

...