У меня есть коллекция моделей с булевым значением interviewed
, и я хочу отфильтровать их так, чтобы в моем представлении отображались либо модели с этим свойством: true
или модели с этим свойством, установленным на false
. В моей коллекции у меня есть следующие методы:Фильтрация коллекции не работает
var ResumeCollection = Backbone.Collection.extend({
filterActive: function() {
var active = this.where({interviewed: false});
return active;
},
filterInterviewed: function() {
var interviewed = this.where({interviewed: true});
return interviewed;
}
});
и на мой взгляд, у меня есть следующие:
var ResumeList = Backbone.View.extend({
events: {
'click #active': 'showActive',
'click #interviewed': 'showInterviewed'
},
initialize: function() {
this.collection = new ResumeCollection();
},
render: function() {
var self = this;
this.$el.html($('#filter'));
_.each(this.collection.toArray(), function (cv) {
self.$el.append((new ResumeView({model: cv})).render().$el);
});
},
showActive: function() {
this.collection.filterActive();
this.render();
},
showInterviewed: function() {
this.collection.filterInterviewed();
this.render();
}
});
Но когда я нажимаю #active
или #interviewed
кнопки, то ничего не происходит и модели с требуемыми свойства не отображаются. Я уже пытался управлять этим методом reset
или возвращать новый экземпляр коллекции с требуемыми моделями, но это не решение, потому что когда я успешно фильтрую исходную коллекцию, она возвращает мне новую коллекцию с моделями, которые мне нужны (например, модели где interviewed: true
), и я не могу отфильтровать его больше - он возвращает только пустую коллекцию. Я просто не могу понять, как я могу отфильтровать эту коллекцию так, как мне нужно.
Вам необходимо отфильтровать модели внутри коллекций и вернуть отфильтрованные модели. В вашем случае 'interviewed' является только параметром коллекции. –
У меня параметр 'интервьюируемый' по умолчанию в моей модели – AlexNikolaev94