为什么要在加载时在jQuery中定义BackboneJS模型和视图并将其连接到窗口对象?



我看到很多教程在jQuery加载后初始化骨干模型/视图。为什么?你以前不能定义它吗?

例如链接

jQuery ->
  class ListView extends Backbone.View
    el: $ 'body'
    initialize: ->
      _.bindAll @
      @counter = 0
      @render()
您可以在文档加载

之前定义类并在文档加载后初始化视图/模型?


我还看到模型/视图在window下定义,为什么会这样?

window.TodoView = Backbone.View.extend
  ...

为什么要在jQuery之后初始化视图?

从主干页面;

Backbone唯一的硬依赖关系是Underscore.js(>1.3.1)。对于 RESTful 持久性,通过 Backbone.Router 的历史记录支持和 Backbone.View 的 DOM 操作包括 json2.js 和 jQuery (> 1.4.2) 或 Zepto。

[强调我的]

这就是依赖关系。

window

它简化了这些小教程示例 - 一切都可以访问window ,因此它为全局变量(ctors、变量、函数等)提供了一个有用的(如果混乱的)倾倒场。

IMO,对于较大的(非演示)项目,您应该使用类似RequireJS的东西。

敢肯定,这样做是为了简单起见。当然,您可以(并且可能应该)在jQuery(document).ready()之外定义构造函数。而且你也可以(并且可能应该)使用一个你自己的全局对象,以免污染全局空间。

最新更新