2016-09-22 42 views
0

我有一個集合A和A的視圖骨幹:獲取集合的選擇,而無需創建新的集合

collection A: 
     model {type: A} 
     model {type: B} 

查看一個應用集合A和它的所有車型。 如果我向集合A添加新模型,則將此模型添加到視圖A.

在視圖中,BI還想使用集合A,但不是所有模型,只有B類型的模型。但是,我想使用View A.所有聽衆

所以,如果我添加爲B針對A型的新模型,視圖B聽衆應該攔截它並添加它來查看B.

我可以做兩個不同的集合,並使用兩個監聽器。但是這看起來很髒。

有沒有辦法讓選擇一個集合到一個新的集合,但保持相同的監聽器和主幹功能,就好像它只是對主集合的引用?

回答

1

一個解決方案是讓一個集合複製另一個集合(同時應用一個過濾器)。

https://jsfiddle.net/t8e6Ldue/

var collectionB = new FilteredCollection(null, { 
    source: collectionA, 
    filter: function(model) { 
    return model.get('type') === 'B'; 
    } 
}); 

看到的jsfiddle全碼