我正在研究馆藏内的搜索模型。
为了防止在所有查询中都获取集合,我进行了collection.clone()
var filteredContacts = contactsCollection.clone();
filteredContacts.reset(filteredContacts.filter(function(contact) {
if(contact.get("login"))
return contact.get("login").search(new RegExp(Value, "i")) >= 0;
else
return false;
}));
filteredContacts.each(function(contact) {
new ContactView( { model: contact } );
});
contactsCollection中也有listenTo
initialize: function() {
this.listenTo(Backbone, "contacts:open", this.getContacts);
},
从服务器获取联系人。 因此,当我尝试触发此事件时,这两个集合都会捕获此事件。
我怎么称呼像collection.destory这样的东西?
答案 0 :(得分:0)
主干为我们提供了功能stopListening()
。该方法实际上告诉对象停止侦听事件。
在您的情况下,我们可以像这样
var filteredContacts = contactsCollection.clone();
filteredContacts.reset(filteredContacts.filter(function(contact) {
if(contact.get("login"))
return contact.get("login").search(new RegExp(Value, "i")) >= 0;
else
return false;
}));
filteredContacts.stopListening("contacts:open");
filteredContacts.each(function(contact) {
new ContactView( { model: contact } );
});
contactsCollection中甚至有如下的listenTo
initialize: function() {
this.listenTo(Backbone, "contacts:open", this.getContacts);
},