Подтвердить что ты не робот

У Backbone.js есть жесткая зависимость от jQuery?

В соответствии с базовым сайтом js:

Только жесткая зависимость базовой линии - Underscore.js( > 1.3.1). Для сохранения RESTful поддержка истории с помощью Backbone.Router и DOM-манипуляции с Backbone.View включают json2.js и jQuery (1.4.2) или Zepto.

Я тестировал код ниже, удаляя jQuery и представление Backbone, выдает ошибку.

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

Как работает Backbone.View и Backbone.Router без jQuery?

4b9b3361

Ответ 1

В то время как Backbone.View зависит от библиотеки манипуляций DOM, то есть вы не можете использовать javascript vanilla, который не организован в какую-либо библиотеку, вы можете настроить 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;
};

Вызов этого метода позволит вам использовать любую нужную библиотеку.

Например:

Backbone.setDomLibrary(myCustomLibrary);

Ответ 2

Вы можете использовать Backbone.Model без jQuery, но для Backbone.View потребуется либо jQuery, либо Zepto, как и состояние docs.

Ответ 3

Попробуйте использовать jBone, это библиотека для манипуляций с DOM в современных браузерах, jBone разработана специально для Backbone, только 2kb gzipped и jQuery как API.