Domanda

Sto cercando di includere JQuery Mobile in un progetto che utilizza RequireJS per AMD, tuttavia, non voglio caricare JQuery Mobile in come modulo AMD. L'idea alla base di questo è che useremo AMD per la logica specifica dell'applicazione, ma qualsiasi dipendenza da biblioteca esterna come JQuery sarà introdotta nello scopo globale semplicemente definendo manualmente i tag di script.

Il problema che sto avendo definendo un tag script per JQuery Mobile prima che il tag script di Richiedjs sembra causare RequireJS di definire un modulo anonimo e creare un conflitto che non capisco. Guardai sia il JQuery che JQuery Mobile Code e sono impostati per chiamare condizionatamente il metodo define() se esiste. Dal momento che sono incluso quei tag prima dei carichi di Richiestajs, non dovrebbero chiamare define(). Ho ricontrollato questo con i punti di interruzione e in effetti non lo fanno.

Quando includo JQuery Mobile ottengo il seguente errore:

Error: Mismatched anonymous define() module: [object Object]
.

Non capisco come sta accadendo se JQuery Mobile non sta chiamando define(). Cosa sto sbagliando qui? È qualcosa con il nuovo supporto condizionale AMD condizionale JQuery Mobile?

È stato utile?

Soluzione

To confirm, you should be using the built version of jQuery mobile, and you should include it before the require.js tag like so -- notice that jquery is included as a script tag since jQuery mobile depends on it:

<script src="scripts/jquery.js"></script>
<script src="scripts/jquery.mobile.js"></script>
<script src="scripts/require.js" data-main="scripts/app"></script>

I expect that to work. The error you see may be generated if you have the scripts like this:

<script src="scripts/require.js" data-main="scripts/app"></script>
<script src="scripts/jquery.js"></script>
<script src="scripts/jquery.mobile.js"></script>

I consider this more of a problem with RequireJS, not jQuery mobile, something I want to fix for RequireJS 1.1. But the first set of script tags should work.

If that does not, it would be interesting to know more how your app's JS module uses jQuery and jQuery mobile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top