我应该把Collection实例放在Backbone.js中的什么位置
Where should I put the Collection instance in Backbone.js?
最好将其放置在全局对象中还是放置在View实例中?
(我想如果我把它放在全局上,比如:window.todos = new Todos()
,如果有很多集合,它会污染全局对象;然而,把它放进视图可能会让事情有点混乱)
根据你的经验,把它放在哪里最好?
我认为这实际上取决于您的应用程序。我通常所做的是为应用程序建立一个名称空间,并将集合和视图放在那里:
// namespace for the application
var app = {};
// collection classes are also within the namespace
app.ToDos = Backbone.Collection.extend({ ... });
// and collection instances are in the namespace as singletons
app.todos = new app.ToDos();
对于大型应用程序,您可以更进一步,为模型类、视图类、路由器类和应用程序实例建立子命名空间。这有几个优点,尽管没有一个是真正关键的:
在
app
命名空间中拥有可用的集合允许在必要时从多个视图引用它们调试时,您可以访问控制台中的集合
为应用程序建立一个新的命名空间可以添加许多新的全局变量,而不会污染全局命名空间或担心与其他库的不良交互
最后一点是为应用程序命名的一个很好的论据,但这并不一定意味着你的集合需要位于命名空间的顶级,或者在全局范围内可用。主要问题是,能够访问特定父视图(或父模型)之外的集合对您来说有多重要。如果你确定这个集合是一次性的,那么把它完全排除在应用程序命名空间之外可能会更干净。
相关文章:
- 什么's本地node.js服务器和python简单http服务器之间的区别
- 什么's是连接供应商js文件的最佳方式
- minimy javascript是什么意思?Backbone.js
- 在node.js中编写单元测试的最佳方式是什么
- node.js是否具有'match()'方法如果是,语法是什么
- angular.js我如何设置数据什么是响应值
- googlemarkercluster.js库的备用源路径是什么
- 将JS文件解析为PHP的副作用是什么
- 如果 JS 中的函数是一流的,那么在定义它们之前允许调用它们是什么
- 什么CSS/JS技巧驱动镜像反转http://com.google愚人节页面
- 什么是淘汰赛中的根管理员.js以及它指向什么
- 将Rails后端添加到JS/HTML/CSS应用程序时,正确的文件位置是什么
- Ember.js什么应该成为组件
- 三.js - 什么是平面缓冲区几何
- three.js-什么'这是将多个纹理/图像放在单个球体上的最佳方式
- backbone.js:什么应该是视图
- D3.js:什么是'g'在.append(“g")D3.js代码
- Node.js什么是对象克隆?
- HTML5/JS什么是一个简单的方法来选择适当的音频源
- JS什么都不做…试图在
- & lt; li>