2012-04-20 7 views
19

Según el sitio web backbone.js: única dependencia dura¿Tiene Backbone.js una fuerte dependencia de jQuery?

de Backbone es Underscore.js (> 1.3.1). Para la persistencia RESTful, soporte de historial a través de Backbone.Router y DOM manipulación con Backbone.View, incluyen json2.js, y jQuery (1.4.2) o Zepto.

He probado con el código siguiente, la eliminación de jQuery y la vista Backbone arroja un error.

<html> 
<head> 
    <title>asda</title> 


    <!--<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>--> 
    <script src="http://documentcloud.github.com/underscore/underscore.js"></script> 
    <script src="http://documentcloud.github.com/backbone/backbone.js"></script>    
    <script type="text/javascript" charset="utf-8" async defer> 
     SearchView = Backbone.View.extend({ 
      initialize: function(){ 
       alert("Alerts suck."); 
      } 
     }); 

     // The initialize function is always called when instantiating a Backbone View. 
     // Consider it the constructor of the class. 
     var search_view = new SearchView; 
    </script> 
</head> 
<body> 

</body> 
</html> 

¿Cómo pueden funcionar Backbone.View y Backbone.Router sin jQuery?

Respuesta

24

Mientras Backbone.View depende una biblioteca de manipulación DOM, es decir, no puede usar vainilla javascript que no está organizado en una biblioteca de algún tipo, puede configurar Backbone para usar cualquier biblioteca que desee .

Véase el siguiente de la fuente Backbone:

// Set the JavaScript library that will be used for DOM manipulation and 
// Ajax calls (a.k.a. the `$` variable). By default Backbone will use: jQuery, 
// Zepto, or Ender; but the `setDomLibrary()` method lets you inject an 
// alternate JavaScript library (or a mock library for testing your views 
// outside of a browser). 
Backbone.setDomLibrary = function(lib) { 
    $ = lib; 
}; 

llamada a este método le permitirá utilizar cualquier biblioteca que desee.

Por ejemplo:

Backbone.setDomLibrary(myCustomLibrary); 
7

Puede usar el Backbone.Model sin jQuery, pero Backbone.View requerirá jQuery o Zepto, al igual que el estado de los documentos.

+1

también 'Backbone.Router' depende de jQuery/Zepto ... – drinchev

+0

posibilidades de no utilizar la vista y el router es suficientemente bajo. Estaría mejor justificado, confíe en jquery/zepto. – TonyTakeshi

6

Intente utilizar jBone, esta es la biblioteca para las manipulaciones de DOM en los navegadores modernos, jBone desarrollado especial para Backbone, solamente gzipped 2 kb y jQuery como API.

+0

muy buena biblioteca si quieres usar backbone y escribir Javascript nativo al mismo tiempo – francesca

Cuestiones relacionadas