如何为Marionette视图指定过滤后的Backbone集合

时间:2015-10-09 00:04:18

标签: backbone.js marionette backbone-views

我有一个Marionette复合视图,它显示了我在Application start处理程序中设置的集合:

App.on('start', function() {
  Backbone.history.start({pushState: true});

  // I load up this.appsCollection in my before:start handler
  var tblView = new this.appsTableView({
    collection: this.appsCollection
  });

  this.regions.main.show(tblView);
}); 

这可以按预期工作,显示我的整个集合。在我的模型中,我有一个状态字段,我想只显示状态为0的模型。我试过:

collection: this.appsCollection.where({state: 0})

但这不起作用。我实际上想要显示0和1中的状态,但我现在只想在0中显示状态。

我错过了什么?

2 个答案:

答案 0 :(得分:3)

问题可能在于.where()没有返回集合,而是数组。 http://backbonejs.org/#Collection-where据说这可以保持与下划线的兼容性。

如果您将行更改为:

collection: new Backbone.Collection( this.appsCollection.where( { state: 0 } ))

这有帮助吗?

答案 1 :(得分:0)

我能够在我的Marionette CompositeView中覆盖过滤器方法:

http://marionettejs.com/docs/v2.4.3/marionette.collectionview.html#collectionviews-filter