Backbone最佳实践在哪里获取模型/集合

时间:2015-03-18 14:24:13

标签: backbone.js

我继承了以下格式的代码库:路由器设置控制器,控制器获取所需的集合/模型,然后控制器设置/传递视图集合/模型。

我正在处理的当前View正在加载一个集合,现在我需要构建一个功能,根据单击的id,在视图渲染后获取单个模型的特征(注意模型来自a不同的收藏品。)

我只想在/点击按钮时加载模型。所以我的问题是,我可以在View中设置模型/获取,还是应该在控制器中执行此操作?采用这样的控制器/视图设置时,是否存在骨干最佳实践?

我主要问,因为我似乎更容易在视图中添加此新功能。但这是一种不好的做法吗?我是这么认为的,所以我开始在控制器的View中触发一个事件来获取模型,然后以某种方式将其传递回View(但我不确定如何做到这一点)......似乎有很多不必要的箍跳?

1 个答案:

答案 0 :(得分:0)

可以通过视图获取集合。由于'普通'骨干不是控制器,负责它的责任。

但imho通过控制器获取集合是更好的实践,它更容易扩展和支持和测试。

唯一的困难是在Controller和View上下文事件之间设置通信。其中一种方法是触发上下文事件的消息总线事件,如

events: {
   'click .some': function() {
       this.trigger('someHappend', { some: data })
   }
}

并在Controller

中收听此事件
this.on(someViewInstance, 'someHappend', function() {
    // do something in controller
})

如果您已经继承了您所描述的结构的代码,那么您最好遵循它。您也可能对MarionetteJS感兴趣是一项重大改进。还强烈建议您查看BackboneRails,屏幕录像不是免费但非常有用,特别是在大规模应用维护中