Question

Je suis un peu frustré par requirejs à ce stade.

Je suis en train de charger jquery et d'autres bibliothèques dans mon dossier App.coffee. Le problème est que je ne peux pas charger les dépendances du module dans ma définition. Certains des arguments d'entrée (jq, jsn, etc) sont nulles ou seulement des objets HTMLDocument. Cette modification en fonction de la permutation des plug-ins que je cherche: « pour », « domready », ou pas

.

Mon répertoire lib js ressemble A). Et mon fichier App.coffee ressemble B). J'ai essayé d'utiliser « chemins » dans le require.config et tout référencement de fichier brut (ce que vous voyez ci-dessous). Je suis conscient de l'intégration requirejs-jquery. Mais je ne devrais pas être en mesure de pour mon plugin chargement ?

je reçois un autre ensemble d'erreurs si j'essaie nommé « chemins ». Je vois quelqu'un suggéré jquery 1.7 ( également ). Est-ce que ça marche? Je voulais d'abord prendre un pas en arrière et assurez-vous que j'ai les concepts vers le bas correctement. i) require.config ii) définition de module w / dépendances, iii) le plug-in de commande, etc.

Si j'ai ces concepts vers le bas correctement, je pense que c'est une question de version jquery. Cependant, il est non seulement jquery comme une dépendance. Et il est incroyablement pénible à perdre du temps de cette manière. Toute aide est appréciée. Merci d'avance.

a)

    $ tree js/lib/
    js/lib/
    ├── backbone.js
    ├── backbone_loader.js
    ├── domReady.js
    ├── jquery-1.6.3.js
    ├── json2.js
    ├── order.js
    ├── pure.js
    ├── require.js
    └── underscore.js

B)

    require.config({
      baseUrl: "/js",
      paths:
        order : '/js/lib/order'
        jQuery : '/js/lib/jquery-1.6.3'
        json2 : '/js/lib/json2'
        Underscore : '/js/lib/underscore'
        Backbone : '/js/lib/backbone_loader'
        pure : '/js/lib/pure'
    })


    define( [ 'js/lib/order!js/lib/jquery-1.6.3',
              'js/lib/order!js/lib/json2',
              'js/lib/order!js/lib/underscore',
              'js/lib/order!js/lib/backbone',
              'js/lib/order!js/lib/pure',
              'js/lib/order!js/bkeeping/models', ]
      (jq, jsn, und, bbn, pur, models) ->

        console.log('bkeeping LOADED')

        # return an object with the models in it  
        models : models
        jQuery : jq.noConflict()
        json2 : jsn 
        Underscore : und.noConflict()
        Backbone : bbn.noConflict()
        pure : pure
    )

Était-ce utile?

La solution 2

Merci pour la direction à ce sujet.

Mais je suis allé à jquery-1.7, mais encore dû tirer de l'espace global pour obtenir l'objet. Cela vaut pour mes autres bibliothèques pour l'instant, et leurs dépendances. Ce que je fini par faire était de retourner un objet avec les dépendances en elle. Je suis en cours de chargement bibliothèque fait avec le plugin pour .

Le contrat d'objets de dépendance étant passé dans votre fonction de rappel (JQ, pur, JSN, etc.), tout simplement ne fonctionne pas pour ces bibliothèques. Il travaille pour mes modules définis (ex: modèles), mais pas libs externes. J'ai essayé utiliser le plugin , mais a constaté que cela n'a pas fonctionné pour underscore et la colonne vertébrale, ou je n'a pas mis en place correctement. Ceci est ma solution viable pour l'instant; même si je dois dire que les maux de tête assombrissent sérieusement les avantages pour require.js.

    define( [ 'order!js/lib/jquery-1.7',
              'order!js/lib/pure',
              'order!js/lib/json2',
              'order!js/lib/underscore',
              'order!js/lib/backbone',
              'order!bkeeping/models', ]
      (jq, pur, jsn, und, bbn, models) ->

        console.log('bkeeping LOADED')

        # return an object with the dependencies in it 
        models : models
        jQuery : jQuery.noConflict()
        pure : pur                      # pure and json2 objects are simply used in other libs. I don't need them directly
        json2 : jsn 
        Underscore : _.noConflict()
        Backbone : Backbone.noConflict()
    )

Autres conseils

Les derniers supports de jQuery AMD chargeurs et se comportent bien avec require.js. Underscore et Backbone ne le font pas et vous devez soit:

  1. utilisez une version modifiée, par exemple un de l'auteur de besoin.
  2. utiliser un plug-in. J'ai trouvé l'utilisation! plugin à partir de pour répondre parfaitement à mes besoins.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top