0

我看到很多教程在加载 jQuery 后初始化主干模型/视图。这是为什么?不能先定义吗?

例如链接

jQuery ->

  class ListView extends Backbone.View

    el: $ 'body'

    initialize: ->
      _.bindAll @
      @counter = 0
      @render()

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


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

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

2 回答 2

1

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

主干网页面

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

[强调我的]

这就是那里的依赖关系。

下定义的模型/视图window

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

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

于 2012-05-31T10:57:41.723 回答
1

我敢肯定,这样做是为了简单。当然,您可以(并且可能应该)在jQuery(document).ready(). 您也可以(并且可能应该)使用一个您自己的全局对象,以免污染全局空间。

于 2012-05-31T10:59:05.943 回答