如何filter/modify backbone collection本身,得不到新数组

How to filter/modify backbone collection itself, not get a new array

我想在 Collection 上过滤或 运行 其他功能,但更改保留在 collection 中,而不是取回新数组。

例如:

在我的 Collection 中,我有一些方法,例如:

approved:  ->
    filtered = @filter((model) ->
        model.get("status") is "approved"
    )
    return filtered


getSubcategories: (obj) ->
    ...

在我的视图中,有时我可能需要批准的模型列表,然后稍后我想要 运行 getSubcategories 方法。但是现在使用这些方法我只会取回一个新数组。

如何在视图中修改我的 Collection 而不取回我无法再 运行 其他 collection 方法的新数组?

您可以 return 集合的新实例,为其提供经过过滤的模型数组

approved:  ->
    filtered = @filter((model) ->
      model.get("status") is "approved"
    )
    new Example.Collection(filtered)