2014-01-05 9 views
0

Я пытаюсь использовать requireJS для добавления this library/plug-in в jquery.using requireJS для плагина, который экспортирует несколько функций в jquery

Я просмотрел документацию и другие документы S.O. вопросы, и я до сих пор не могу понять, что происходит не так.

Использование основы и требует в качестве примера: Я уверен, что мне нужно использовать прокладку в файле main.js. Я также уверен, что мне нужно еще загрузить плагин в конкретном файле, в котором я хочу его использовать (хотя я фактически не использую объект rangyInputs в теле функции) (что я делаю для позвоночника). На самом деле, я просто хочу связать функции из библиотеки rangyInputs с jquery один раз, а затем просто потребовать jquery во всех файлах, в которых мне нужны эти функции.

define([ 
'jquery',  
'underscore', 
'backbone'  
, 'views/listView' 
, 'sockets' 
, 'collections/nodesCollection' 
, 'views/listView' 
, 'models/node' 
, 'rangyInputs' //I define the path to this like I do the path for backbone in main.js 
], 
function($, _, Backbone, ListView, io, nodesCollection, listView, nodeModel ,rangyInputs){ 

ООН-уменьшенная библиотека имеет это в конце:

$.fn.extend({ 
     getSelection: jQuerify(getSelection, false), 
     setSelection: jQuerify(setSelection, true), 
     collapseSelection: jQuerify(collapseSelection, true), 
     deleteSelectedText: jQuerify(deleteSelectedText, true), 
     deleteText: jQuerify(deleteText, true), 
     extractSelectedText: jQuerify(extractSelectedText, false), 
     insertText: jQuerify(insertText, true), 
     replaceSelectedText: jQuerify(replaceSelectedText, true), 
     surroundSelectedText: jQuerify(surroundSelectedText, true) 
    }); 

Документация, и приводятся примеры, когда с помощью «экспорта» для прокладки, но я не думаю, что я могу использовать это так У меня есть несколько вещей, которые я экспортирую. (и я не совсем уверен, как работает экспорт).

Спасибо!

EDIT: Я пытался применять это решение, чтобы я мог включить другой плагин, и это не сработало, так что я попросил another question here

ответ

0

удалось создать простой рабочий пример:

индекс .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' 
    }, 
    shim : { 
     'rangyinputs-jquery' : {deps : ['jquery'], exports : '$'} 
    } 
}); 

require(['jquery', 'rangyinputs-jquery'], function($) { 
    console.log('Type of $.fn.getSelection' typeof $.fn.getSelection); 
}); 

последние версии jquery совместимы с AMD, поэтому вам не нужно использовать экспортную шину, но rangyinputs-jquery нет, поэтому мы экспортируем объект jquery и добавляем зависимость от jquery. все файлы в одном каталоге:

  • index.html
  • main.js
  • JQuery-2.0.3.js
  • rangyinputs-JQuery-1.1.2.js
  • require.js
Смежные вопросы