Javascript 在主干/胸部应用程序中在何处实例化我的收藏?

Javascript 在主干/胸部应用程序中在何处实例化我的收藏?,javascript,backbone.js,thorax.js,Javascript,Backbone.js,Thorax.js,我想知道在Thorax(或主干)应用程序中实例化我的集合的最佳位置是哪里。 我找不到一个像样的答案,但我基本上找到了3种方法,大多数是从主干网,因为关于胸部的讨论不够: 在集合文件本身中创建它们并添加到应用程序命名空间。(例如:集合/Todos.js文件末尾的do app.Todos=new Todos()。我不喜欢这种方法,因为它总是会创建所有集合,即使我不需要它们 在模块的路由器中创建它们(在带腰部的胸部,每个胸部模块都有自己的路由器)。然后创建视图并将其传递给视图。这样可以保证我只创建路

我想知道在Thorax(或主干)应用程序中实例化我的集合的最佳位置是哪里。 我找不到一个像样的答案,但我基本上找到了3种方法,大多数是从主干网,因为关于胸部的讨论不够:

  • 在集合文件本身中创建它们并添加到应用程序命名空间。(例如:集合/Todos.js文件末尾的do app.Todos=new Todos()。我不喜欢这种方法,因为它总是会创建所有集合,即使我不需要它们
  • 在模块的路由器中创建它们(在带腰部的胸部,每个胸部模块都有自己的路由器)。然后创建视图并将其传递给视图。这样可以保证我只创建路由所需的集合
  • 在视图中创建它们。我还没有找到一个很好的例子,但是在《主干基础》中提到,大多数控制器的职责都是由视图来处理的,但是我不喜欢在视图中实例化集合的想法,但是它会使事情变得更简单,因为视图肯定知道它需要哪些集合

我认为答案在很大程度上取决于应用程序的具体情况(基于主干网的项目往往如此)。我通常会尝试将集合传递给视图的构造函数,以避免以后调用。我绝对不会在集合文件中创建它们。我通常认为实例化是一个“需要知道”的决定:集合类本身不需要知道如何/何时使用它,而有时路由器需要知道(如果有特定参数),视图总是需要知道,尽管有时不可能单独在视图中管理对象创建

如果您正在寻找一个尺寸合适的胸部项目示例,您可以看看,它有一个Rails后端和一个胸部前端。胸部代码在中找到,并用CoffeeScript编写