5

¿Hay una versión bifurcada/mantenida de la red troncal que elimine por completo la necesidad de usar jquery o zepto tanto en el enrutador como en las vistas?Eliminación de la dependencia jquery/zepto en backbone.router y vistas

No me importaría usar la red troncal, pero no hay manera de que forcé una dependencia de jquery en mi página solo para usarla.

Si no existe una solución, ¿alguien puede publicar la esencia de lo que se debe cambiar exactamente?

+0

Dado que el sistema de manejo de eventos para las vistas se basa en '$ .delegate' y amigos, creo que ha tenido mucha suerte. –

+0

De hecho. :/[limitación de caracteres] – AntelopeSalad

Respuesta

9

Si desea que Backbone maneje la manipulación DOM, los eventos DOM y las solicitudes AJAX, necesitará otra biblioteca para hacer esto. No tiene que ser jQuery o Zepto - Backbone también es compatible con Ender, y en teoría podría usar cualquier biblioteca que pueda hacer selección de DOM y que admita un subconjunto de métodos de estilo jQuery. Una mirada rápida a través de la annotated source code muestra que se necesitan los siguientes métodos:

  • $(selector)
  • $.ajax()
  • $(selector).find()
  • $(selector).bind()
  • $(selector).unbind()
  • $(selector).delegate()
  • $(selector).remove()
  • $(selector).attr()
  • $(selector).html()

Si no desea Backbone para hacer frente a esto, puede quitar muy fácilmente los requisitos al sobrescribir los métodos que los utilizan por ejemplo - puede prescindir de .attr() y .html() configurando Backbone.View.prototype.make = function() {}. O simplemente no use Backbone.View, que elimina la necesidad de todo excepto $.ajax() (a menos que esté usando pushState, en cuyo caso también necesita el enlace de eventos).

+0

Ok gracias, ¿entonces básicamente no vale la pena el esfuerzo? Parece una gran cantidad de primordial hacer manualmente. - Editar: va a dejar que esto se ejecute durante unas horas más y marcarlo como correcto si no se dan soluciones. – AntelopeSalad

+0

Bueno, como dije, simplemente no use 'Backbone.View'. Entonces solo tienes que implementar '$ .ajax()'. Si no estás dispuesto a usar una biblioteca DOM, no obtendrás mucho valor de 'Backbone.View' de todos modos. – nrabinowitz

+1

No estoy de acuerdo con eso. No es una locura pensar en seleccionar un elemento usando getElementById() en lugar de usar jquery, o configurar el atributo innerHTML de algo, etc. – AntelopeSalad

0

Puede tratar de usar jBone, esta es la biblioteca para manipulaciones de DOM en los navegadores modernos, jBone desarrollado especialmente para Backbone, solo 2kb gzipped y jQuery como API.

Cuestiones relacionadas