2013-10-07 4 views
0

У меня есть две библиотеки javascript, одна из которых я написал как коннектор, а другая - библиотека третьей стороны «bootbox.js». Я использую requirejs для настройки моей пользовательской библиотеки, однако я не уверен, как сделать то же самое для bootbox.js, не изменяя код jbox bootbox.Использование jquery с requirejs

js error Я получаю.

TypeError: $ is not a function 

Текущая конфигурация.

warnings.js

requirejs.config({ 
    "shim": { 
     'bootbox': { 
      deps: ['./jquery'] 
     } 
    } 
}); 

define(["./jquery", "./vendor/bootbox"], function($) { 

    var int; 

    int = function(spec) { 
     $('#' + spec.id).dialog({do something}); 
    } 

    return int; 
} 

и теперь bootbox.js

window.bootbox = window.bootbox || (function init($, undefined) { 
    "use strict"; 
    //do something 
}(window.jQuery)); 

Кто-нибудь знает, как получить bootbox библиотеку JS, чтобы использовать пространство имен JQuery?

+0

Вы пробовали это? http://requirejs.org/docs/jquery.html#shimconfig См. также: http://stackoverflow.com/questions/15471088/requirejs-why-and-when-to-use-shim-config/15486691#15486691 – explunit

+0

Я попробовал requirejs.config ({ "shim": { "./vendor/bootbox": ["jquery"] } }); но я просто очень смущен тем, как это работает. Я попробую снова прочитать эту статью. –

+0

, если вы не можете заставить его работать, пожалуйста, также разместите раздел require.config – explunit

ответ

0

app.js в файле

require.config({ 
    .... 
    shim: { 
     'bootbox': { 
      deps: ['./jquery'] --> dependancies 
     } 
    } 
)} 

это означает, что когда вы

require('bootbox') 

тогда require.js принесет JQuery первый, а затем загрузить другой файл. , пожалуйста, посетите this link для получения дополнительной информации

+0

Просто будьте очень осторожны, если вы загрузите jquery из CDN, если вы это сделаете. См. Http://requirejs.org/docs/api.html#config-shim и посмотрите «Важные примечания к оптимизатору для Shim Config» – deitch

+0

спасибо, я посмотрю на это .. потому что я делаю это все время :( –

+1

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

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