Как исправить рендеринг скриптов при навигации по AJAX - PullRequest
0 голосов
/ 09 января 2019

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

это навигационная функция

  function LoadAjaxURL(url) {

        $.ajax({

            url: url,
            type: 'GET',
            success: function (response) {

                $('#mainDiv').html(response);
                history.replaceState('', '', url);
            }
        })
    }

все мои скрипты обернуты в

@section pagespecific {


}

в макете я отрисовываю скрипты с частичным представлением

@{ Html.RenderPartial("_Scripts", RenderSection("pagespecific", false)); }

в моем viewStart я проверяю, является ли запрос ajax или нет

if (Request.IsAjaxRequest())
{
    Layout = null;
}
else
{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

Мне нужно перемещаться с использованием ajax и полностью отображать сценарии, не получая ошибок, чтобы пулгин работал.

1 Ответ

0 голосов
/ 09 января 2019

Я не совсем уверен, в чем именно заключается ваша проблема, но я предполагаю, что речь идет о плагинах JavaScript и файлах, которые не извлекаются до выполнения ваших встроенных скриптов, поэтому их функции & ... не будут распознаны ваши встроенные скрипты. Чтобы решить такие проблемы, вы можете использовать DOMContentLoaded событие:

<script>    
    window.addEventListener("DOMContentLoaded", function () {
        // All .js files and plugin are now completely loaded & you could use them...
    };
</script>

Примечание. Кстати, вы можете исключить свои скрипты из этого раздела при отправке Ajax-запроса. Потому что, когда у вас нет макета, у вас нет разделов.

Пожалуйста, дайте мне знать, поможет ли это вам или нет.

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