2014-01-05 2 views
0

Ранее я спросил this question и получил один плагин для работы. Теперь я пытаюсь запустить другой плагин, используя решение для первого подключаемого модуля, но это решение не работает.requireJS работал на одном подключаемом модуле, но не на другом

Я пытаюсь получить this plug-in работать, но хром консоль выплевывает эту ошибку:

Uncaught ReferenceError: jQuery is not defined :3000/js/libs/textarea_auto_expand.js:41 

Мой код заключается в следующем:

require.config({ 
    paths: { 
     jquery: '/js/libs/jquery/jquery-2.0.3', 
    underscore: '/js/libs/underscore/underscore-min', 
    backbone: '/js/libs/backbone/backbone-min', 
    //text: '/js/libs/text' 
templates: '../templates' 
,sockets: '/socket.io/socket.io' 
,rangyInputs: '/js/libs/rangyinputs-jquery-1.1.2' 
, textareaAutoExpand: 'js/libs/textarea_auto_expand' 

}, 
shim: { 
    'Backbone': ['Underscore', 'jQuery'], 
    'sockets': {exports: 'io'}, 
    'rangyinputs-jquery': {deps: ['jquery'], exports: '$'}, 
    'textarea_auto_expand': {deps: ['jquery'], exports: '$'} 

} 
}); 

    require(['jquery', 'router', 'libs/a_myLib/keydownHandler', 'libs/textarea_auto_expand' ], 
function($, router, keydownHandler, ta_ae){ 
$("body").on("keydown", "textarea", keydownHandler); 
router.initialize(); 
$("textarea").textareaAutoExpand(); 
}) 

ответ

0

Проблема заключается в том, что вы использовали путь имя JQuery, но указан JQuery в вас магистралях DEPS:

'Backbone': ['Underscore', 'jQuery'], 

Опять же, здесь работает пример из main.js

index.html

<!doctype html> 
<html> 
    <head></head> 
    <body> 
     <script data-main="main" src="require.js"></script> 
    </body> 
</html> 

main.js

require.config({ 
    paths : { 
     jquery : 'jquery-2.0.3', 
     'rangyinputs-jquery' : 'rangyinputs-jquery-1.1.2', 
     textareaAutoExpand: 'js/libs/textarea_auto_expand' 
    }, 
    shim : { 
     'rangyinputs-jquery' : {deps : ['jquery'], exports : '$'}, 
     'textarea_auto_expand': {deps: ['jquery'], exports: '$'} 
    } 
}); 


require(['jquery', 'rangyinputs-jquery', 'textarea_auto_expand'], function($) { 
    console.log('Type of $.fn.textareaAutoExpand ' + typeof $.fn.textareaAutoExpand); 
    var t = $('<textarea/>').textareaAutoExpand(); 
    $('body').append(t); 
}); 
+0

Спасибо! Это избавляет от ошибки консоли, но текстовые области фактически не расширяются. – curtissv

+0

Обновленный пример. В этом случае они расширяются. –

+0

Это не работает для меня. Я думал, это может быть потому, что текстовые области, которые я использовал, были динамически добавлены, поэтому я попытался добавить его в HTML. Не повезло. Я думаю, что я просто перейду на браузер, потому что это действительно небольшой проект, который не должен быть слишком эффективным. – curtissv

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