Использование jQuery.load с RequireJS

0

Я часто загружаю виджеты, которые я пишу так:

$(window).load(function () {
  doStuff();
});

Это часто бывает, когда я пишу виджеты, которые зависят от остальной части приложения, которое должно быть инициализировано.

Недавно я начал использовать RequireJS и не могу понять, как подключить обратный вызов, как в приведенном выше коде. Я посмотрел и попробовал плагин domReady, но он не будет соответствовать моему прецеденту, так как обратные вызовы вызывается, когда DOM готов, а не когда загружаются все ресурсы.

Вот что я пробовал до сих пор:

// Using domReady (main.js):
require(['require', 'domReady'], function (require, domReady) {
    'use strict';

    domReady(function () {
        require(['app'], function (App) {
            console.log(window);
            App.initialize();
        });
    });
});

// Using jQuery (main.js)
// Note, this does not work.
require(['jquery', 'app'], function ($, App) {
    'use strict';

    $(window).load(function () {
        App.initialize();
    });
});

Учитывая вышеизложенное, каков правильный способ достижения использования $(window).load() с RequireJS?

Теги:
requirejs

1 ответ

0

Если вы правильно поняли, вы можете проверить метод $.holdReady() для достижения результата; поэтому сразу после загрузки jquery run

jQuery.holdReady(true);

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

jQuery(function($) {
    App.initialize();  //will run only after window.load;
}

и в настройке вашего загрузчика:

jQuery(window).load(function () {
    jQuery.holdReady(false);  //fire all domready holded events
});
  • 0
    Не совсем. Моя проблема с передачей обратного вызова в $ (window) .load, который, кажется, не работает должным образом. Приведенный вами пример задерживает вызов готовности DOM, но не ожидает загрузки других ресурсов.
  • 0
    Вы хотите провести, пока RequireJS не закончит загрузку скриптов? запустите jQuery.holdReady(false); в обратном вызове RequireJS для всех загруженных сценариев или создайте небольшой массив наблюдения, который будет проверен, чтобы убедиться, что load () и этот обратный вызов запущены, когда оба запускаются, освобождают удержание domready. Пожалуйста, немного поиграйтесь с неприятностями, потому что я не знаю, как вы используете load ().
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню