2014-04-21 4 views
1

J'essaie d'exiger la bibliothèque jquery UI mais si j'essaie d'utiliser les fonctions, ils ne sont pas définis.Impossible d'exiger le jqueryui

ici est le code

RequireJS 2.1.11

<script data-main="/js/lpapi/v3/qfapi.js" src="/vendor/requirejs/require.min.js"></script> 

qfapi.js

(function() { 
    require.config({ 
    paths: { 
     jquery: '/jquery/jquery-1.11.0.min', 
     jqueryui: '/vendor/jqueryui/jquery-ui-1.10.4.custom.min', 
     backbone: '/vendor/backbone/backbone-min', 
     underscore: '/vendor/underscore/underscore-min' 
    }, 
    shim: { 
     "jqueryui": { 
     deps: ['jquery'], 
     exports: '$' 
     }, 
     "underscore": { 
     exports: "_" 
     }, 
     "backbone": { 
     exports: 'Backbone', 
     deps: ['underscore', "jquery"] 
     } 
    } 
    }); 

    define(["jquery", "jqueryui", "backbone", "underscore"], function($, _, Backbone) { 
    console.log("jquery is loaded"); 
    console.log("jqueryui is loaded"); 
    console.log("underscore is loaded"); 
    console.log("backbone is loaded"); 
    $("#accordion").accordion(); 
    return true; 
    }); 

}).call(this); 

' "accordéon" est pas une fonction.

une idée?

Répondre

0

Il y a quelques problèmes avec le code que vous montrez. Votre appel define doit être un appel require. Et votre liste d'arguments est incorrect:

require(["jquery", "backbone", "underscore", "jqueryui"], function($, _, Backbone) { 

La façon dont vous l'avez dans votre question _ obtiendrait une valeur indéfinie et Backbone serait lié au module underscore. Les numéros data-main ne doivent pas inclure l'extension .js. La valeur de data-main est un nom de module. Les noms des modules RequireJS ne doivent généralement pas contenir d'extension.