Pregunta

Me estoy frustrando un poco con los requisitos en este momento.

Estoy tratando de cargar jQuery y otras bibliotecas en mi archivo APP.Coffee. El problema es que no puedo cargar dependencias del módulo en mi definición. Algunos de los argumentos de entrada (JQ, JSN, etc.) son objetos nulos o simplemente htmlDocument. Esto cambia en función de la permutación de complementos que intento: 'Orden', 'domreweading' o ninguno.

Mi directorio js lib parece a). Y mi archivo app.coffee se parece a B). He intentado usar 'rutas' en requerir.config y simplemente referencia de archivos sin procesar (lo que ve a continuación). Soy consciente de la integración requiradora de JQuery. Pero no debería poder ordene la carga de mi complemento?

Recibo un conjunto diferente de errores si intento llamado 'rutas'. Veo a alguien sugerido jQuery 1.7 (también aquí). ¿Esto funciona? Primero quería dar un paso atrás y asegurarme de tener los conceptos bajos correctamente. i) requirir.

Si tengo estos conceptos correctamente, pensaría que es un problema de versión jQuery. Sin embargo, no es solo jQuery como dependencia. Y es increíblemente molesto perder el tiempo de esta manera. Se agradece cualquier ayuda. Gracias por adelantado.

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
    )

¿Fue útil?

Solución 2

Gracias por la dirección en esto.

Pero fui a jQuery-1.7, pero aún así tuve que sacar del espacio global para obtener el objeto. Eso se aplica a mis otras libs por ahora y sus dependencias. Lo que terminé haciendo fue devolver un objeto con las dependencias en él. Tengo la carga de la biblioteca con el complemento de pedido.

El contrato de objetos de dependencia que se transmiten a su función de devolución de llamada (JQ, PUR, JSN, etc.), simplemente no funciona para estas bibliotecas. Funciona para mis módulos definidos (Ej: modelos), pero no LIBS externos. Probé el Usar complemento, pero descubrí que no funcionó para un subrayador y columna vertebral, o no lo configuré correctamente. Esta es mi solución viable por ahora; Aunque tengo que decir que los dolores de cabeza están nublando seriamente los beneficios para requirir. 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()
    )

Otros consejos

El último JQuery admite los cargadores AMD y se comportará bien con Request.js. Subrayado y columna vertebral no y tendrás que hacerlo:

  1. use una versión modificada, por ejemplo, la una Del autor de Request.
  2. Use un complemento. ¡He encontrado el uso! complemento de aquí Para adaptarse a mis necesidades perfectamente.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top