5

Вопрос по jquery, javascript – Удаление зависимости jquery / zepto от backbone.router и представлений

Существует ли разветвленная / поддерживаемая версия магистрали, которая полностью устраняет необходимость использования jquery или zepto как маршрутизатора, так и представлений?

Я не возражаю против использования магистрали, но, черт возьми, я никоим образом не навязываю зависимость jquery на своей странице только для ее использования.

Если решение не существует, может ли кто-нибудь опубликовать суть того, что именно нужно изменить?

  • Error: User Rate Limit ExceededBackbone.ViewError: User Rate Limit ExceededmethodsError: User Rate Limit Exceeded

    от
  • Error: User Rate Limit ExceededBackbone.ViewError: User Rate Limit Exceeded$.ajax()Error: User Rate Limit ExceededBackbone.ViewError: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от AntelopeSalad
  • Error: User Rate Limit Exceeded

    от AntelopeSalad
  • Учитывая, что система обработки событий для представлений основана на$.delegate и друзья, я думаю, вам очень не повезло.

    от mu is too short
  • В самом деле. : / [ограничение персонажа]

    от AntelopeSalad
  • 4

    Да, вот это:

    https://github.com/inkling/backbone.native, Это крошечный адаптер, который позволяет Backbone работать, полагаясь только на собственные DOM API.

  • 0

    Вы можете попробовать использовать

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

  • 9

    Если вы хотите

    чтобы Backbone обрабатывал манипуляции с DOM, события DOM и запросы AJAX, то для этого вам понадобится другая библиотека. Это не обязательно должен быть jQuery или Zepto - Backbone также поддерживает Ender, и вы можете теоретически использовать любую библиотеку, которая может делать выбор DOM и поддерживает подмножество методов стиля jQuery. Быстрый просмотраннотированный исходный код показывает, что вам нужны следующие методы:

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

    Если вы не хотите, чтобы Backbone имел дело с этим, вы можете довольно легко удалить требования, переписав методы, которые их используют, например. Вы можете обойтись без.attr() а также.html() установивBackbone.View.prototype.make = function() {}, Или просто не используйтеBackbone.View - это устраняет необходимость во всем, кроме$.ajax() (если вы не используетеpushState, в этом случае вам нужно связывание событий тоже).