从其他路由器/视图访问集合

时间:2012-08-10 23:57:38

标签: backbone.js

我仍然是Backbone的新手,我对此感到非常难过......

我有标题的路由器/集合/视图,以及广告系列的路由器/集合/视图。

当用户创建新广告系列时,它必须与标题相关联。因此,在创建表单中,我需要访问所有标题的列表,以便我可以获取其名称和(rails)ID。

我不知道如何从我的“广告系列”视图中访问此标题列表。

关于解决方案的一些想法:

  1. 使用像连字一样的关联库 - 对于一个相当简单的问题,这似乎很多工作,我真的不需要关联..我只需要完整的标题列表。
  2. 在全局范围内声明我的标题集合并将其传递给标题路由器的初始化程序。
  3. 在“广告系列”路由器中创建“标题”集合。这看起来非常多余。
  4. 很高兴发布代码,但我不知道什么是相关的。

1 个答案:

答案 0 :(得分:0)

如果全球范围是window,我建议尽可能避免这种情况。您的标题/广告系列类是否可以访问共享范围? E.g:

( function () {

  var App = {};

  // ...

  // Titles code

  var titles = App.titles = new Backbone.Collection;

  // ...

  // Campaign code

  var titles = App.titles;

} )();

您可能希望安排一些事情,以便应用的各个部分可以访问共享范围,如果您希望在整个应用中使用单个标题集合。

否则,如果由于某种原因这是不切实际或不受欢迎的,您可以在“广告系列”部分创建一个单独的“标题”集合,然后从服务器获取它,或者引导它,或者您想要填充它。

如果没有看到某些代码,很难更具体,所以也许这会建议一些您认为与发布相关的代码。