[javascript] требует использования шаблона AMD, дает ошибку для событий пользовательского интерфейса jQuery



Answers

Вам нужно использовать jquery-ui вместо пути к вашему файлу.

shim:{
     'jquery': {
            exports: 'jQuery'
          },
     'jquery-ui': {
            deps: ['jquery']
        }
}

define(['jquery-ui','library/src/js/test'], function ($, test) {
    //code goes here
});
Question

В моем коде test.js зависит от jquery-ui, который не использует, требует шаблона AMD и test.spec.js, зависящие от jquery-ui, test.js, который использует шаблон AMD. Можем ли мы загружать зависимость jquery-ui в test.js динамически при запуске test.spec.js.

require.config({

    baseUrl: '/demo',

    paths: {
        'jquery': '../library/jquery-1.11.1',
        'jquery-ui': '../library/jquery-ui-1.11.4'
    },
    shim: {
        'jquery': {
            exports: 'jQuery'
        },
        'jquery-ui': {
            deps: ['jquery']
        },
        'library/src/js/test': {
            deps: ['library/jquery-1.11.1', 'library/jquery-ui-1.11.4', '../js/collapse'],
            exports: 'Test'
        }
    },
    callback: window.__karma__.start
});

В test.js написано «draggable» jquery-ui draggable event. после вычисления $('#panelId').draggable({revert: true}); получена ошибка

«TypeError:« undefined »не является функцией (оценивая« $ («# panelId»). Draggable ({revert: true}) ') "

Как загрузить jquery-ui для test.js в require.config. Поскольку я использую это, чтобы запускать свои тесты на жасмин. В реальной среде он работает так, как ожидалось, но в тестовом примере жасмина не удается найти событие jquery-ui. test.js не использует require.js, но test.spec.js использует шаблон AMD.

в коде test.spec.js после выполнения этой полученной ошибки jquery-ui draggable undefined

define(['jquery-ui','library/src/js/test'], function ($) {

});

Я могу получить доступ к jquery ui в test.spec.js, используя $, а не в test.js, где событие jquery-ui записывается как test.js не использует шаблон AMD require. Не знаю, чего не хватает. любая помощь будет назначена ... :)






Links