Exten.js l'URL distante de chargement paresseux

J'ai un fichier appelé moment.js sur mon système de fichiers local et le charger comme suit avec require.js fonctionne:

initialize: function() { require(['moment'], function(data) { console.log(data); }); } 

Cependant, si je le fais:

 initialize: function() { require(['http://momentjs.com/downloads/moment.min.js'], function(data) { console.log(data); }); } 

Les données sont revenues indéfinies. Pourquoi est-ce? Et comment puis-je inclure dynamiquement les modules distants à l'exécution?

J'ai remarqué que le code que vous essayez de charger durcode le nom du module en tant que moment afin de configurer RequireJS sur place afin que vous puissiez exiger avec le même nom:

 initialize: function() { require.config({ paths: { moment: 'http://momentjs.com/downloads/moment.min' } }); require(['moment'], function(data) { console.log(data); }); } 

Je pense que l'URL pour le moment devrait être sans extension de fichier, c'est-à-dire qu'il devrait ressembler comme suit: moment: ' http://momentjs.com/downloads/moment.min '

Si vous devez charger un module localement et à partir d'une URL distante, vous devez nommer le module lors de sa définition et ajouter un module "alias" nommé comme URL, avec les deux modules définis dans le même fichier .

Exemple:

  //define a module NAMED "moment" using the first optional name paramter define("moment", ["require"], function (require) { /*module code goes here*/ }); //alias module to use when lazy loading from URL define("http://momentjs.com/downloads/moment.min.js", ["require"], function (require) { return require("moment");//returns original module }); 

Vous pouvez en savoir plus à ce sujet dans une publication sur le blog que j'ai écrite ici .