Можно ли контролировать порядок рендеринга компонентов HTML Razor? - PullRequest
1 голос
/ 19 сентября 2019

Я пытаюсь отобразить одну из своих страниц, и у меня есть вызов Html.RenderAction() в верхней части элемента, который я хотел бы отобразить.Я хотел бы вызвать один из моих методов инициализации js в document.ready() изнутри страницы, которая отображается через мой вызов RenderAction, но, похоже, он вызывает document.ready() перед HTML-кодом на странице после вызова Html.RenderAction().

Из-за этого функция init проверяет данные из элемента кендо, который не был загружен с момента его вызова до завершения JQuery, и видит только входные данные, которые должны быть входными данными кендо, по умолчанию html <input>elements.

Другими словами, есть ли способ отложить загрузку / вызов RenderAction до тех пор, пока страница не будет загружена?Или я должен просто использовать некрасивый CSS, чтобы держать нужный раздел в верхней части моего div?Краткое изложение моего кода ниже:

<html>
...
<div>
  @Html.RenderAction("File that calls init() method")
  <...rest of page that I need to load first, including kendo text boxes/>
</div>

</html>

Файл, который вызывает метод init ()

<div>
...
</div>
<script src="...">
  $(document).ready(function() {
    myJs.init(params)
  }
</script>


Теперь, когда я приступил к реализации ответа нижев другом месте я понял, что при переключении с document.ready на window.on('load',...) теперь нарушается другое представление, которое работает аналогично, но вместо этого вызов @Html.RenderAction находится внизу:

...
<div>
  <>page including kendo inputs</>
  @Html.RenderAction("different file that calls same init() method")
</div>

</html>

В основном,document.ready работает для меня, если бритва находится перед кендо, но не наоборот - а window.on('load',function(){...}) работает на противоположное.

1 Ответ

0 голосов
/ 19 сентября 2019

Это может работать, попробуйте использовать $ (window) .load (function () вместо $ (document) .ready (function ()

<div>
...
</div>
<script src="...">
  $(window).load(function() {
    myJs.init(params)
  }
</script>

По ссылке ниже: "выполняется, когда завершена страницаполностью загружен, включая все кадры, объекты и изображения "

jQuery - В чем различия между $ (документ) .ready и $ (окно) .load?

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