web-dev-qa-db-fra.com

ReferenceError: define n'est pas défini lors de l'incorporation de fuelux dans datagrid.js

Je voulais ajouter une utilisation http://exacttarget.github.com/fuelux/ pour construire une grille de données. Je voulais ajouter la bibliothèque pour l'utiliser. J'ai fait ce qui suit:

<link href="<spring:url value='/assets/css/fuelux.min.css' htmlEscape='true' />"      media="all" rel="stylesheet" type="text/css" />
<link href="<spring:url value='/assets/css/fuelux-responsive.min.css' htmlEscape='true' />" media="all" rel="stylesheet" type="text/css" />
<script src="<spring:url value='/assets/js/fuelux-datagrid.js' htmlEscape='true' />" type="text/javascript"></script>

Je suis sûr que le chemin est correct car ils fonctionnent dans d'autres bibliothèques. Cependant, j'obtiens l'erreur suivante:

ReferenceError: define is not defined
[Break On This Error] 
define(['require','jquery'],function(require) {

define(['require','jquery'],function(require) {... est le code dans fuelux-datagrid.js.

  • Quelle est cette erreur?
  • Je pense que define est un mot-clé de require.js . Est-ce à dire que fuelux-datagrid a une dépendance sur require.js ?
  • Quelqu'un peut-il m'expliquer comment charger la bibliothèque pour la faire fonctionner?
15
Lasang

Si vous n'utilisez pas RequireJS, vous pouvez contourner ce problème en chargeant uniquement le fichier loader.min.js dans une balise de script de base:

<script src="http://fuelcdn.com/fuelux/2.3/loader.min.js"></script>

Ce paquet contient tout le JavaScript nécessaire pour Bootstrap et Fuel UX, sans dépendance externe sur un chargeur AMD.

10
Adam Alexander

Cela a fonctionné pour moi:

<script src="https://raw.github.com/ExactTarget/fuelux/master/lib/require.js"></script>
<script type="text/javascript" src="https://raw.github.com/ExactTarget/fuelux/master/dist/datagrid.js"></script>

J'ai essayé ce que @AdamAlexander a suggéré et ce qui est suggéré ici et n'a pas fonctionné. J'ai également essayé les derniers requiredjs et obtenu une méchante exception. Allez comprendre.

12
user1791567

Oui, ils semblent avoir une dépendance envers RequireJS. Je dois convenir qu'ils n'ont pas beaucoup de ressources qui expliquent comment charger la bibliothèque (au moins à partir de ce que j'ai vu), mais ce que je ferais, c'est charger require.js et vérifier quelles autres ressources il essaie de charger par la suite, en regardant aux demandes du réseau.

Voici un exemple de configuration de RequireJS. Vous pouvez également consulter leurs documents .

<script src="scripts/require.js"></script>
<script>
  require.config({
    baseUrl: "/another/path", //here's where it will look for scripts
    paths: {
        "some": "some/v1.0" //path to other dependencies not located in the base path
    }
  });
</script>
3
plalx