W moim kodzie test.js jest zależny od jquery-ui, który nie używa wymaga wzoru AMD i testu.spec.js zależącego od jquery-ui, test.js który używa AMD wzór. Czy możemy ładować zależność jquery-ui w pliku test.js dynamicznie, gdy uruchamiamy test.spec.js.wymagają użycia wzorca AMD daje błąd dla zdarzeń jQuery UI
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
});
W teście test.js jest zapisywany "przeciągalny" z zdarzenia przeciągalnego jquery-ui. po dokonaniu oceny $('#panelId').draggable({revert: true});
dostał błąd
"TypeError: 'undefined' is not a function (evaluating '$('#panelId').draggable({revert: true})')"
Jak załadować jQuery UI test.js w require.config. Ponieważ używam tego do uruchamiania testów jaśminowych. W rzeczywistym środowisku działa zgodnie z oczekiwaniami, ale w jaśminowym przypadku testowym nie można znaleźć zdarzenia jquery-ui. test.js nie używa require.js, ale test.spec.js używa wymaganego wzorca AMD.
w test.spec.js kodu po wykonaniu tego dostaje błąd jquery-ui Draggable nieokreślonej
define(['jquery-ui','library/src/js/test'], function ($) {
});
jestem w stanie uzyskać dostęp do jQuery UI w test.spec.js użyciu $, a nie w test.js gdzie zdarzenie jquery-ui jest napisane jako test.js nie używa wzorca wymaganego przez AMD. Nie wiem, czego brakuje. każda pomoc będzie aprobowana ... :)
Czy u tworzyć jsfiddle z kodem? – venkat7668
@ venkat7668 w bibliotece/src/js/test używam odwołania do jquery-ui, które nie wymaga require.js, podczas ładowania dependecy wykonuje plik library/src/js/test i zgłasza niezdefiniowany błąd zdarzenia jquery-ui. –
Masz na myśli, że 'library/src/js/test.js' nie jest modułem AMD? – tonyjmnz