J'essaie d'obtenir plus en ligne avec AMD, et je suis tombé sur quelque chose dans la source jQuery que je ne peux tout simplement pas comprendre.jQuery 1.7+, AMD (RequireJS), et Global Scope
Voici la section (qui se trouve juste avant la fin du fichier):
if (typeof define === "function" && define.amd && define.amd.jQuery) {
define("jquery", [], function() { return jQuery; });
}
D'après ce que je peux voir, l'un des principaux points d'AMD est de garder la portée globale propre. Pourtant, jQuery choisit de renvoyer une référence à lui-même en tant que module, mais infecte toujours l'espace global.
Il me semble, en ajoutant "jQuery.noConflict();" juste avant que le retour ne le résolve et retourne toujours l'objet en tant que module.
Je sais que RequireJS a des fichiers spéciaux spécifiquement pour jQuery, mais je ne suis pas sûr que ce soit nécessaire pour 1.7+.
Ma question est 2 partie:
1) Est-ce que quelqu'un sait pourquoi cette décision a été prise?
2) Étant donné que cette approche n'est pas conviviale, quelqu'un connaît-il une solution plus élégante qui utilise la version standard de RequireJS et de jQuery?
http://stackoverflow.com/questions/4858431/use-requirejs-and-jquery-without-clobbering-global-jquery/9593868#9593868 –