Динамическая загрузка контента

191
18 марта 2018, 22:45

Делаю динамическую загрузку контента на сайте, столкнулся с такой проблемой: при попытке загрузить(перейти на) определенную динамическую страницу в лог выбрасывается

Uncaught TypeError: Cannot read property 'title' of undefined at _loadPage (main.js:16) at HTMLAnchorElement._navigate (main.js:35) at HTMLBodyElement.dispatch (jquery.js:4430) at HTMLBodyElement.elemData.handle (jquery.js:4116)

При этом если ввести например прямой адрес example.com/about то страница открывается без каких либо ошибок. Код кнопки перехода:

        <li>
          <a href="blog" data-menu="blog" data-link="ajax" <?php echo ($pageMenu == 'blog') ? ' class="active"' : '' ?>>
            <i class="menu-icon fa fa-envelope"></i>
            <span class="menu-text">Блог</span>
          </a>
        </li>

main.js

var app = (function() {
    // Загрузим конфиг из data/config.json
    var config = {};
    var ui = {
        $body: $('body'),
        $menu: $('#menu'),
        $pageTitle: $('#page-title'),
        $content: $('#content')
    };
    // Загрузка контента по странице
    function _loadPage(page) {
        var url = 'templates/' + page + '.html',
            pageTitle = config.pages[page].title,
            menu = config.pages[page].menu;
        $.get(url, function(html) {
            document.title = pageTitle + ' | ' + config.siteTitle;
            ui.$menu.find('a').removeClass('active');
            ui.$menu.find('a[data-menu="' + menu + '"]').addClass('active');
            ui.$pageTitle.html(pageTitle);
            ui.$content.html(html);
        });
    }
    // Клик по ссылке
    function _navigate(e) {
        e.stopPropagation();
        e.preventDefault();
        var page = $(e.target).attr('href');
        _loadPage(page);
        history.pushState({page: page}, '', page);
    }
    // Кнопки Назад/Вперед
    function _popState(e) {
        var page = (e.state && e.state.page) || config.mainPage;
        _loadPage(page);
    }
    // Привязка событий
    function _bindHandlers() {
        ui.$body.on('click', 'a[data-link="ajax"]', _navigate);
        window.onpopstate = _popState;
    }
    // Старт приложения: привязка событий
    function _start() {
        _bindHandlers();
    }
    // Инициализация приложения: загрузка конфига и старт
    function init() {
        $.getJSON('/data/config.json', function(data) {
            config = data;
            _start();
        });
    }
    // Возвращаем наружу
    return {
        init: init
    }
})();
// Запуск приложения
$(document).ready(app.init);

Подскажите пожалуйста где я накосячил.

READ ALSO
Как получить значения из формы

Как получить значения из формы

Имеется форма, в этой форме есть chekbox-Ы со значением, а также другие input:

201
Как преобразовать object в array в React JS

Как преобразовать object в array в React JS

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

164
Проблема с htacess в WordPress

Проблема с htacess в WordPress

Привет!Я создал фронт енд для своего сайта на React и залил его на серверНа сервере в корне лежит сам проект а WordPress в папке wp

151