Domanda

A questo punto mi sto un po 'frustrata.

Sto cercando di caricare jQuery e altre librerie nel mio file app.coffee. Il problema è che non riesco a caricare le dipendenze dei moduli nella mia definizione. Alcuni degli argomenti di input (JQ, JSN, ecc.) Sono null o solo oggetti HTMLDocument. Questo cambia in base alla permutazione di plugin che provo: "order", "Domready" o nessuno.

La mia directory JS Lib sembra un). E il mio file app.coffee sembra b). Ho provato a usare i "percorsi" nel referenziazione dei file requisite.config e solo dei file (quello che vedi di seguito). Sono a conoscenza dell'integrazione di Requisito-JQuery. Ma non dovrei essere in grado di farlo Ordina il mio plug -in caricamento?

Ricevo un diverso set di errori se provo "Paths". Vedo qualcuno suggerito jQuery 1.7 (anche qui). Funziona? Prima volevo fare un passo indietro e assicurarmi di avere i concetti correttamente. i) Richiedi.config ii) Definizione del modulo con dipendenze, iii) il plug -in dell'ordine, ecc.

Se avessi questi concetti correttamente, penso che sia un problema di versione jQuery. Tuttavia, non è solo jQuery come dipendenza. Ed è incredibilmente fastidioso perdere tempo in questo modo. Qualsiasi aiuto è apprezzato. Grazie in anticipo.

UN)

    $ 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
    )

È stato utile?

Soluzione 2

Grazie per la direzione su questo.

Ma sono andato a JQuery-1.7, ma ho ancora dovuto estrarre dallo spazio globale per ottenere l'oggetto. Questo vale per le mie altre librerie per ora e le loro dipendenze. Quello che ho finito per fare è stato restituire un oggetto con le dipendenze in esso. Ho fatto il caricamento della libreria con il Plug -in d'ordine.

Il contratto di oggetti di dipendenza viene approvato nella funzione di callback (JQ, PUR, JSN, ecc.), Semplicemente non funziona per queste librerie. Funziona per i miei moduli definiti (ex: modelli), ma non libri esterni. Ho provato il Usa il plugin, ma ho scoperto che non ha funzionato per sottolineare e spina dorsale, o non l'ho impostato correttamente. Questa è la mia soluzione praticabile per ora; Anche se devo dire che i mal di testa stanno seriamente offuscando i vantaggi per Requisite.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()
    )

Altri suggerimenti

L'ultimo jQuery supporta i caricanti AMD e si comporterà bene con Requisite.js. Sottolineare e spina dorsale no e dovrai:

  1. utilizzare una versione modificata, ad esempio il uno dall'autore di Requisite.
  2. Usa un plugin. Ho trovato l'uso! plugin da qui per soddisfare perfettamente le mie esigenze.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top