использование requireJS для плагина, который экспортирует несколько функций в jquery

0

Я пытаюсь использовать requireJS для добавления этой библиотеки/подключаемого модуля в jquery.

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

Используя магистраль и требуйте в качестве примера: я уверен, что мне нужно использовать прокладку в файле 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: Я попытался применить это решение, чтобы я мог включить другой плагин, и он не работал, поэтому я задал еще один вопрос здесь

Теги:
requirejs
backbone.js

1 ответ

0
Лучший ответ

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

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'
    },
    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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню