我看到许多教程在jQuery加载后初始化Backbone模型/视图。这是为什么?你以前不能定义它吗?
例如 link
jQuery ->
class ListView extends Backbone.View
el: $ 'body'
initialize: ->
_.bindAll @
@counter = 0
@render()
您可以在文档加载之前定义类,并在文档加载后初始化视图/模型吗?
另外,我看到window
下定义的模型/视图为什么会这样?
window.TodoView = Backbone.View.extend
...
答案 0 :(得分: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的内容。
答案 1 :(得分:1)
我敢肯定,这是为了简单起见。当然,您可以(也可能应该)在jQuery(document).ready()
之外定义构造函数。而且你也可以(也可能应该)使用一个你自己的全局对象,以免污染全局空间。