2015-01-05 4 views
0

У меня возникла проблема при загрузке fileupload при использовании requirejs. Ошибка, что она дает мне это:Fileupload не работает с RequireJS

TypeError: this._on is not a function 

, и я предполагаю, что это происходит потому, что FileUpload требует jquery.ui.widget быть загружен слишком. Итак, я попробовал импортировать lib, но я не могу сделать это правильно. Может ли кто-нибудь помочь мне, как правильно загрузить его?

это код:

require.config({ 
paths: { 
    'jQuery': 'lib/jquery-1.10.2.min', 
    'jQuery-ui': 'lib/jquery-ui-1.10.3', 
    'jQuery-ui-widget' : 'jquery.ui.widget', 
    'bootstrap': 'lib/bootstrap.min', 
    'jquery-iframe': 'jquery.iframe-transport', 
    'fileupload': 'jquery.fileupload', 
}, 
shim: { 
    'jQuery': { 
     exports: '$' 
    }, 
    'jQuery-ui': { 
     deps: ['jQuery'], 
     exports: '$' 
    }, 
    'jQuery-ui-widget': { 
     deps: ['jQuery', 'jQuery-ui-widget'] 
    }, 
    'bootstrap': { 
     deps: ['jQuery', 'jQuery-ui'] 
    }, 
    'fileupload': { 
     deps: ['jQuery', 'jQuery-ui', 'jquery-iframe'] 
    } 
}, 
// only for development purporses: 
urlArgs: "bust=" + (new Date()).getTime() 

}); require (['jQuery', 'jQuery-ui', 'bootstrap', 'layout', 'menu', 'modal', 'table', 'form', 'fileupload'], function ($, jqueryUi, _bootstrap , расположение, меню, модальная, таблица, форма, FileUpload) {

$(document).ready(function() {... 

ответ

0

есть несколько проблем с конфигурацией:

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

  2. jQuery hardcodes имя его модуля как jquery (все ниже), поэтому вы не можете ссылаться на него под именем jQuery. Ну, вы могли использовать конфигурацию map для отображения jQuery в jquery, но в настоящее время у вас нет таких map в вашей конфигурации. Я бы рекомендовал использовать jquery по всей доске, что является текущей практикой практически в каждом проекте, который я вижу, который использует RequireJS и jQuery.

Я также рекомендую использовать enforceDefine: true в конфигурации, так что RequireJS обеспечивает лучшую диагностику сбоев модуля загрузки.

Смежные вопросы