删除对backbone.router和视图的jquery/zepto依赖性

Ant*_*lad 5 javascript jquery web-applications client-side backbone.js

是否存在分支/维护的主干版本,完全不需要jquery或zepto来同时使用路由器和视图?

我不介意使用主干但是没有办法我会强制jquery依赖我的页面只是为了使用它.

如果某个解决方案不存在,有人可以发布一个需要更改的内容吗?

nra*_*itz 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,除去你需要的东西,在这种情况下你也需要事件绑定.