我看到很多教程在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()
之外定义构造函数。而且你也可以(并且可能应该)使用一个你自己的全局对象,以免污染全局空间。